Czy można uruchomić terminal lub polecenie zakończenia skryptu Bash i NIE przerywać polecenia?
Moim rozwiązaniem było uruchomienie crona o określonej porze dnia, ale jestem pewien, że jest coś łatwiejszego.
Czy można uruchomić terminal lub polecenie zakończenia skryptu Bash i NIE przerywać polecenia?
Moim rozwiązaniem było uruchomienie crona o określonej porze dnia, ale jestem pewien, że jest coś łatwiejszego.
Odpowiedzi:
Aby uniknąć propagacji sygnałów wyjściowych do procesów potomnych terminala i powłoki, uruchom polecenie za pomocą nohup, tj .:
nohup cmd &
cmd & disowndziała również, ponieważ &traktowane jest jak ;separator poleceń. Polecenie disown usuwa połączenie między sesją powłoki bash a poleceniem w tle.
cmd &|.
Używanie screen:
screen -S <session name> -d -m <your command>
po tym możesz wyjść z terminala, a także ponownie podłączyć się do niego przez:
screen -r <session name>
Więcej informacji: odniesienie
Jeśli chcesz uruchamiać określone polecenie lub plik co sekundę w tle po wyjściu z terminala, możesz wypróbować tę łatwą drobiazg;
nohup watch -n5 'bash script.sh' &
To uruchamiałoby scipt.sh co 5 sekund.
Po swoim poleceniu umieść znak „&”.
na przykład:
/home/your/script.sh &
/home/your/script.sh- ponieważ nie został odłączony od swojego „rodzica”, ale po prostu „w tle”. Użyj, nohupaby odłączyć go naprawdę.
nohup- która rejestruje również wszystkie (teraz niewidoczne) dane wyjściowe w pliku o nazwie nohup.outznajdującym się w katalogu, z którego uruchomiono polecenie.
jobspoleceniem. Dość często chcę móc powrócić do procesu powłoki po tle.