Как сохранить команду, запущенную из оболочки, если я выйду из нее?


12

Какие существуют методы, чтобы сохранить команду, которая была запущена из оболочки при запуске после выхода из оболочки?

Ответы:


11
  • Чтобы поместить приложение в фоновый режим, используйте &:

    command &
    
  • Если вы хотите , чтобы закрыть терминал и сохранить работу приложения, вы можете использовать несколько вариантов: , и .screen Установить экранdtach Установить дтачnohup

    nohup command &
    
  • Экран полезен, так как вы можете перезапустить сеанс, а dtach - это тоже весело.

  • Посмотрите на следующие ссылки для получения дополнительной информации


не работает добавление &в конце команды тоже?
theTuxRacer

2
@ Kaustubh-P, использующий &, часто является хорошим помощником для закрытия терминалов с помощью команды выхода, не нажимая кнопку закрытия X. & заставляет команду выполняться на заднем плане. Но если родительская оболочка закрывается. это все еще может заставить фоновые программы выйти.
karthick87

5

Используйте команду nohup следующим образом:

nohup gedit /home/user/file.txt &

Как даже удалить nohup: игнорирование ввода и перенаправление stderr на стандартный вывод
Amruth A

5

Команда полезна (баш?) Есть disown. Приятно то, что он работает для уже запущенного задания (кстати, вы отказываетесь от заданий, а не от процессов, поэтому вам нужно сделать ctrl-Z, bgперед запуском отключение для вашего задания. Например, представьте, что вы делаете следующее:

local % ssh some.where.com
remote % verylongscript.sh

Теперь вы понимаете, что вам нужно идти, но не хотите, чтобы сценарий был убит при выходе, поэтому вы

ctrl-Z
remote % bg
remote % disown
remote % exit
local %

Теперь remoteваш скрипт все еще работает.


1

я использую

nohup mycommand &

Например, чтобы вызвать виртуальный сервер VirtualBox, я набираю в удаленной оболочке следующее (которое я затем закрываю):

nohup VBoxHeadless --startvm "myvm" --vrdp=off &
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.