Puncte:1

De ce nu pot rula programe după închiderea conexiunii SSH folosind setsid, nohup sau disown?

drapel no

Încerc să rulez un program „a.o” pe un server la distanță. Pentru a menține funcționarea după închiderea conexiunii SSH, am încercat următoarele:

setsid ./a.o
nohup ./a.o
./a.o &
respinge -h %1

Niciuna dintre aceste opțiuni nu pare să funcționeze și nu-mi dau seama de ce. Aveți idei despre cum să remediați această problemă?

P.S. Folosesc o conexiune tunel pentru a mă conecta la server printr-o mașină de salt. De asemenea, acesta este un program care implică codul CUDA care rulează pe GPU. Au acestea vreo legătură cu problema?

user535733 avatar
drapel cn
Puteți utiliza un Multiplexor de terminal pentru a menține procesele care rulează după deconectare. Atât `screen`, cât și `tmux` sunt destul de bune și ambele sunt în depozitele Ubuntu.
edwardliang2019 avatar
drapel no
@user535733 Mulțumesc mult. Am încercat tmux și a funcționat!
Puncte:1
drapel cn

The nohup Pagina Wikipedia are o referință la această problemă în mod specific:

Rețineți că nohupping joburile în fundal este de obicei folosită pentru a evita terminarea lor atunci când vă deconectați de la o sesiune SSH la distanță. O problemă diferită care apare adesea în această situație este aceea că ssh refuză să se deconecteze („se blochează”), deoarece refuză să piardă orice date de la/la job-urile de fundal.[6][7] Această problemă poate fi depășită și prin redirecționarea tuturor celor trei fluxuri I/O:

$ nohup ./myprogram > foo.out 2> foo.err < /dev/null &

De asemenea, rețineți că o sesiune SSH de închidere nu trimite întotdeauna un semnal HUP proceselor dependente, cum ar fi atunci când nu a fost alocat un pseudo-terminal.

După cum se menționează în comentarii, ecran și tmux sunt perfecte si pentru asta. Personal, prefer tmux.

edwardliang2019 avatar
drapel no
Mulțumesc mult! Asta îmi rezolvă problema perfect. Și tmux funcționează și pentru mine.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.