Самый эффективный способ запуска и отделения программы от терминала? [дубликат]

На этот вопрос уже есть ответ здесь:

Я пытаюсь запустить программу из Терминала таким образом, что происходит следующее:

  1. Закрытие Терминала не закрывает программу
  2. Программа ничего не выводит в Терминал при открытии, использовании или закрытии
  3. Терминал можно использовать для других целей
  4. Команда короткая и sweet
  5. Нет выходного файла, о котором стоит беспокоиться
14
задан 23 April 2015 в 04:01

6 ответов

См. man nohup:

NAME
   nohup - run a command immune to hangups, with output to a non-tty

Ответ:

nohup program-name &
15
ответ дан 23 April 2015 в 14:01

Используйте tmux.

Первый запуск tmux, затем выполняет любую команду, которую Вы хотите. Можно закрыться tmux окно или ронять ярлыком CTRL-B D. На самом деле можно еще позже повторно прикрепить tmux attach.

2
ответ дан 23 April 2015 в 14:01

Я думаю, что это было бы самым полным путем:

program-name </dev/null &>/dev/null &
disown %%

Отрицание фонового процесса означает, что оболочка не будет больше отслеживать его. Это не скажет Вам, когда это будет сделано. Это не будет препятствовать тому, чтобы Вы закрыли свою оболочку. %% означает "последний раз фоновое задание".

, Если Вы хотите скрыть все подробности, поместите функцию как это в Вашем .bashrc

launch_and_forget () { "$@" </dev/null &>/dev/null & disown %%; }

Затем

launch_and_forget program args "args args" ...

, Дают имя, это значимо для Вас.

8
ответ дан 23 April 2015 в 14:01

Можно очень просто использовать setsid Попытка:-

NAME
       setsid - run a program in a new session

SYNOPSIS
       setsid program [arg...]

DESCRIPTION
       setsid runs a program in a new session.

следующий пример command:-

setsid <command>

:-setsid gedit, setsid nautilus ~/Downloads/ и т.д.

6
ответ дан 23 April 2015 в 14:01

Я рекомендовал бы или tmux, как Siyuan Ren предложенный, или Экран GNU. Тем путем Вы получаете новый терминал для своей команды. Можно отсоединить его и забыть о нем, но можно возвратиться, если Вы передумали.

1
ответ дан 23 April 2015 в 14:01

Я взял, и продолжите использовать...

(nohup program-name 2>/dev/null &)
0
ответ дан 23 April 2015 в 14:01

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

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