Próbuję użyć skryptu powłoki, aby uruchomić polecenie. Nie obchodzi mnie, czy / kiedy / jak / dlaczego to się kończy. Chcę, aby proces został uruchomiony i uruchomiony, ale chcę mieć możliwość natychmiastowego powrotu do mojej powłoki ...
100
nohup
,&
idisown
, kliknij tutaj, aby przejść do czwartego odpowiedź .Odpowiedzi:
Możesz po prostu uruchomić skrypt w tle:
Zauważ, że różni się to od umieszczania
&
wewnątrz skryptu, który prawdopodobnie nie zrobi tego, co chcesz.źródło
&
znajduje się wewnątrz skryptu, a nie maszwait
, polecenie w tle zostanie zabite po zakończeniu działania skryptu.myscript
modyfikuje środowisko terminala, np. jest to polecenie inicjalizacji terminala, które nie jest potrzebne natychmiast i może zostać opóźnione, czy nadal będzie modyfikować środowisko terminala?Wszyscy po prostu zapomnieli
disown
. Oto podsumowanie:&
umieszcza pracę w tle.disown
usuwa proces z kontroli zadań powłoki, ale nadal pozostawia go połączonego z terminalem.SIGHUP
(jeśli powłoka otrzyma aSIGHUP
, wysyła równieżSIGHUP
do procesu, co normalnie powoduje zakończenie procesu).nohup
odłącza proces od terminala, przekierowuje jego wyjścienohup.out
i chroni go przedSIGHUP
.SIGHUP
.&
(jako praca w tle).źródło
disown
w Debianie lub OS X. Myślałem, że to program, ale wydaje mi się, że się mylę. Co to jest?nie zawiesza się po zamknięciu terminala. wyjście domyślnie trafia do nohup.out
Możesz to połączyć z tłem,
i pozbądź się wyniku,
możesz także
disown
rozkaz. typcmd
,Ctrl-Z
,bg
,disown
źródło
tail nohup.out
, spowoduje to wyświetlenie ostatnich 10 wierszy wyniku polecenia. Używam tego do zadań tworzenia kopii zapasowych rsync, aby zobaczyć, w jakim pliku obecnie się znajduje.jobs
.Alternatywnie, po uruchomieniu programu, możesz nacisnąć Ctrl-Z, co spowoduje zatrzymanie programu, a następnie wpisz
co powoduje umieszczenie ostatniego zatrzymanego programu w tle. (Przydatne, jeśli zacząłeś coś bez `` & '' i nadal chcesz to w backgroung bez ponownego uruchamiania)
źródło
screen -m -d $command$
uruchamia polecenie w odłączonej sesji. Możesz użyć,screen -r
aby dołączyć do rozpoczętej sesji. To wspaniałe narzędzie, niezwykle przydatne także podczas sesji zdalnych. Przeczytaj więcej naman screen
.źródło