Jak mogę zachować polecenie uruchomione z powłoki, jeśli wyloguję się z powłoki?

12

Jakie metody istnieją, aby komenda uruchomiona z powłoki działała po wylogowaniu z powłoki?

NES
źródło

Odpowiedzi:

11
  • Aby umieścić aplikację w tle, użyj &:

    command &
    
  • Jeśli chcesz, aby zamknąć terminal, a dalsze działanie aplikacji, można korzystać z kilku opcji: , i .screen Zainstaluj ekrandtach Zainstaluj dtachnohup

    nohup command &
    
  • Ekran jest pomocny, ponieważ możesz wznowić sesję, a dtach jest również świetną zabawą.

  • Więcej informacji znajdziesz pod poniższymi linkami

karthick87
źródło
czy dodawanie &na końcu polecenia też nie działa?
theTuxRacer
2
@ Kaustubh-P przy użyciu & jest często dobrym nawykiem do zamykania terminali za pomocą polecenia „exit”, nie wciskając przycisku zamykania X. Sprawia, że ​​polecenie działa w tle. Ale jeśli powłoka nadrzędna zostanie zamknięta. które wciąż mogą zmusić programy działające w tle do wyjścia.
karthick87
5

Użyj polecenia nohup w następujący sposób:

nohup gedit /home/user/file.txt &
Javier Rivera
źródło
Jak nawet usunąć nohup: ignorowanie danych wejściowych i przekierowywanie stderr na standardowe wyjście
Amruth A
5

Przydatnym poleceniem (bash?) Jest disown. miłą rzeczą jest to, że działa dla już uruchomionego zadania (nawiasem mówiąc, odrzucasz zadania, a nie procesy, więc musisz zrobić ctrl-Z, bgprzed uruchomieniem polecenia disown w swoim zadaniu. Na przykład wyobraź sobie, że wykonujesz następujące czynności:

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

Teraz zdajesz sobie sprawę, że musisz iść, ale nie chcesz, aby skrypt został zabity po wyjściu, więc ty

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

Teraz remotetwój skrypt nadal działa.

Yossi Farjoun
źródło
1

używam

nohup mycommand &

Na przykład, aby uruchomić wirtualny serwer VirtualBox, wpisuję w zdalnej powłoce (którą następnie zamykam):

nohup VBoxHeadless --startvm "myvm" --vrdp=off &
Ivan
źródło