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?

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


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 &

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.


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 &
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.