Запуск программы через терминал и помещение его immidiatly в bg / bashrc

Таким образом, я пытаюсь запустить Programm при помощи терминала, но я также не хочу, чтобы он был заблокирован к упомянутому терминалу.

я добавил псевдоним в bashrc для легкого запуска:

alias tksuite='sudo sh /usr/local/tksuite_client/run_client.sh && ^Z && bg && disown'

Я также попробовал это:

alias tksuite='sudo sh /usr/local/tksuite_client/run_client.sh  \& && disown'

то, которое unfortunally также не работало или лучше сказало, работало, но не, поскольку мне нравится, когда это, так как программа не показывала, но работала.

Какие-либо идеи/указатели, где я иду не так, как надо?

Править: Забыл упоминать: Ubuntu 14.04

1
задан 22 October 2014 в 13:15

1 ответ

Отправка процесса к фону работает по-другому, чем Вы принимаете особенно в сочетании с sudo. По этим причинам я рекомендую совершенно другой подход:

  1. Создайте сценарий оболочки tksuite в некотором каталоге, происходящем в $PATH, например. /usr/bin/tksuite:

    #!/bin/sh
    exec /bin/sh /usr/local/tksuite_client/run_client.sh "$@"
    
  2. Сделайте это исполняемым файлом:

    sudo chmod +x /usr/bin/tksuite
    
  3. Теперь можно запустить сценарий с полномочий суперпользователя в фоне с

    gksudo tksuite & disown
    

Кроме того, это может все быть сделано в функции оболочки

tksuite() {
    gksudo -- sh /usr/local/tksuite_client/run_client.sh "$@" &
    disown
}

invokable с tksuite поскольку Вы предназначили.

0
ответ дан 6 October 2019 в 22:41

Другие вопросы по тегам:

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