Portál AbcLinuxu, 10. května 2025 04:48
nohup -p PID
ktory dokaze poslat nohup uz spustenemu procesu (ak sme ho zabudli spustit s nohupom)
Moja otazka je, ako toto docielit v Linuxe?
Google hovori, ze existuje:
disown -h JOB#
The shell exits by default upon receipt of a SIGHUP. Before exiting, an interactive shell resends the SIGHUP to all jobs, running or stopped. Stopped jobs are sent SIGCONT to ensure that they receive the SIGHUP. To prevent the shell from sending the signal to a particular job, it should be removed from the jobs table with the disown builtin (see SHELL BUILTIN COMMANDS below) or marked to not receive SIGHUP using disown -h.Musim tu ale pouzit cislo JOBu z tabulky:
jobs
No a to je problem. Ked sa prihlasim ako iny uzivatel, alebo ked sa prihlasim pod dalsim pripojenim, tak jobs mi uz nevypise nic.
Ako zobrazim v dalsom sedeni ulohy na pozadi spustene v inom sedeni?
Řešení dotazu:
shopt -s huponexit
, což nejspíš nemáte. Hangup může být v kombinaci s openssh způsoben nepřesměrováním std{in,err,out}, ale ani to nevede přímo k ukončení procesu, leda k nějaké chybě.
shopt -s huponexit
Ale nechapem toto:
např. bash stejně SIGHUP nepošleSpustim skript a havaruje mi ssh cez ktore som bol pripojeny na server a spustil skript. Zabudol som ho ale spustit s nohup, takze aj napriek tomu, ten skript pobezi dalej?
skript.sh #!/bin/bash exec <&- exec >&- exec 2>&- trap "echo SIGHUP >>/tmp/skript.log" HUP trap "echo SIGTERM >>/tmp/skript.log" TERM while true; do date >>/tmp/skript.log; sleep 1; donesession:
ssh server.example.net ./skript.sh & -bash$ logout Connection to server.example.net closed. ssh server.example.net tail -f /tmp/skript.log ...Stejně tak pokud si své ssh na lokálu sestřelím, dopadne to stejně, akorát hlášky ssh jsou dle toho jestli pošlu
SIGTERM
či SIGKILL
buď Killed by signal 15
rnebo Killed
. V každém případě skript na serveru běží dál. Jeho rodičem se stane proces 1 (init). Stejně tak pokud na serveru jakkoliv sestřelím sshd process té mé session. Někde jsem četl že je možnost že v případě zabití ssh toto pošle ten svůj signál bashi a ten ho následně přepošle těm úlohám, ale zatím jsem se s tím nesetkal takže to nemohu potvrdit. Skripty běhaj.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.