kiedy wykonasz zadanie Uniksa w tle ( używając&, BG command) i wyloguj się z sesji, twój proces zostanie zabity. Można tego uniknąć za pomocą kilku metod-wykonywania zadania za pomocą nohup lub tworzenia go jako zadania wsadowego za pomocą polecenia at, batch lub cron.
ta szybka wskazówka jest dla początkujących. Jeśli używasz nohup od jakiegoś czasu, zostaw nam komentarz i powiedz nam, w jakich sytuacjach używasz nohup.,
w tej szybkiej poradzie, pozwól nam sprawdzić, jak sprawić, aby proces działał nawet po wylogowaniu, używając nohup.
nohup oznacza no hang up, które można wykonać, jak pokazano poniżej.
składnia nohup:
# nohup command-with-options &
nohup jest bardzo pomocny, gdy musisz wykonać skrypt powłoki lub polecenie, które zajmuje dużo czasu. W takim przypadku nie chcesz być podłączony do powłoki i czekać na zakończenie polecenia. Zamiast tego wykonaj go za pomocą nohup, WYJDŹ z powłoki i kontynuuj inne prace.
Wyjaśnienie o nohup.,out file
domyślnie standardowe wyjście zostanie przekierowane do nohup.out plik w bieżącym katalogu. A błąd standardowy zostanie przekierowany na stdout, a więc trafi również do nohup.Wynocha. Więc, twój nohup.out będzie zawierał zarówno standardowe wyjście, jak i komunikaty o błędach ze skryptu wykonanego przy użyciu polecenia nohup.
zamiast używać nohup.Na zewnątrz, można również przekierować wyjście do pliku za pomocą zwykłych przekierowań powłoki.,
przykład: Drukowanie linii na obu standardowych wyjściach & błąd standardowy
while(true)doecho "standard output"echo "standard error" 1>&2 sleep 1;done
Uruchom skrypt bez przekierowania
Uruchom skrypt z przekierowaniem
Jeśli wylogujesz się z powłoki i zalogujesz ponownie, nadal będziesz widzieć custom-script.sh bieganie w tle.
$ ps aux | grep sathiya sathiya 12034 0.0 0.1 4912 1080 pts/2 S 14:10 0:00 sh custom-script.sh