Как установить приложение только одному пользователю в Linux Mint?

Вы получаете вывод pgrepв свою statusпеременную. Это просто не тот результат, которого вы ожидаете.

pgrepвыводит идентификаторы процессов (PID )процессов, соответствующих заданному шаблону. Если есть процесс, имя которого соответствует compton, то $statusбудет PID этого процесса или этих процессов. pgrepтакже возвращает статус выхода, но статус выхода не фиксируется подстановкой команды в виде строки.

В своем тесте вы сравниваете $statusс 1. Маловероятно, что comptonимеет PID 1.


Если вы хотите убить любой comptonпроцесс, если он существует, и запустить compton -b, если comptonпроцесса не существует, вы можете сделать это с помощью

#!/bin/sh

if ! pkill compton; then
    exec compton -b
fi

Здесь используется статус выхода pkill. Инструмент pkillработает аналогичноpgrep(они обычно распространяются и устанавливаются как пара ), но вместо вывода PID соответствующих процессов, как это делал бы pgrep, pkillотправляет сигнал TERM(по умолчанию )для соответствующих процессов.

Ключевое слово ifиспользует статус выхода команды, которую вы используете вместе с ним.

!меняет смысл теста таким образом, что

  • Если pkill comptonзавершается успешно, это означает, что был один или несколько comptonпроцессов, которые сейчас были убиты или, по крайней мере, получили сигнал, и exec compton -bне будут выполняться.

  • Если pkill comptonзавершится ошибкой, (ни один процесс не соответствует имени, или вpkill)возникнет какая-то внутренняя ошибка, тело оператора ifвызовет ваш exec compton -b, что заменит процесс оболочки на процесс, являющийся результатом запуска compton -b.

-4
05.07.2020, 07:27
1 ответ

Как правило, при установке двоичные файлы будут устанавливаться, например, в /usr или /bin, то есть в какую-то папку, указанную в пути для всех пользователей.Любая персонализация для каждого пользователя для этого двоичного файла хранится в его домашней папке, часто в скрытой папке, то есть в имени программы с префиксом точки.

Чтобы установить для одного пользователя, установите двоичный файл, используя эту учетную запись, а не повышая права с помощью sudo до домашней папки пользователя.

Если вы объясните, какое именно приложение вы хотите установить, возможно, совет будет более конкретным и менее общим.

1
18.03.2021, 23:22

Теги

Похожие вопросы