LINUX.ORG.RU
ФорумAdmin

sshd не убивает процессы, которые породил (


0

0

Коннекчусь по ssh, например, командой:

$ ssh 123.123.123.123 'arecord &>/dev/null'

Теперь клиент прибивается, или происходит разрыв канала связи, и на удаленной стороне arecord продолжает висеть.

И так происходит с любой программой или скриптом, которые не открывают stdout и stderr, или просто ничего не выводят.

Как заставить sshd прибивать процессы при разрыве, которые он запустил?

Может использовать не ssh а что-нибудь другое?

А как sshd узнает, что сокет закрыт, если процесс ничего не вводит и не выводит?

anonymous ()

Вам нужен флаг "-t":

     -t      Force pseudo-tty allocation.  This can be used to execute arbi‐
             trary screen-based programs on a remote machine, which can be
             very useful, e.g. when implementing menu services.  Multiple -t
             options force tty allocation, even if ssh has no local tty.
edigaryev@brick ~ $ ps aux | grep arecord
1000     26183  0.0  0.0   4960   756 pts/2    S+   21:57   0:00 grep --colour=auto arecord
edigaryev@brick ~ $ ssh -t localhost 'arecord &>/dev/null'
Password: 
^CConnection to localhost closed.
edigaryev@brick ~ $ ps aux | grep arecord
1000     26250  0.0  0.0   4960   752 pts/2    S+   21:58   0:00 grep --colour=auto arecord
edigaryev@brick ~ $ 

edigaryev ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.