Kiedy rozpoczynam sesję SSH, która wykonuje długo działające polecenie, co dzieje się z obsługą Ctrl+ C(SIGINT)?
Widzę, że sesja SSH jest zamknięta, ale nie jestem pewien, kto pierwszy otrzyma SIGINT: czy to ...
zdalne długo działające polecenie? to znaczy (a) procedura obsługi sygnału w zdalnym poleceniu jest wywoływana i zatrzymuje polecenie zdalne, (b) powłoka, która go stworzyła, wykrywa zatrzymanie polecenia, a także się zatrzymuje (c) zdalny sshd wykrywa zatrzymanie powłoki, więc zamyka połączenie
lub
lokalny ssh odbiera sygnał i zamyka połączenie.
Myślę, że (1) się dzieje, ale chcę się upewnić.
W tym przypadku nie jestem również pewien, co się stanie z obsługą powłoki SIGINT. Na przykład, jeśli ...
ssh remote 'while true ; do sleep 1 ; date ; done'
i Ctrl+ C, wtedy połączenie zdalne zostanie zerwane. Czy istnieje sposób uruchomienia polecenia zdalnego pod powłoką, która pozostanie przy życiu po Ctrl+ C? Oznacza to, że w tym przypadku zatrzymaj pętlę i pozwól mi kontynuować pracę nad zdalną powłoką?
ssh remote command
w przeciwieństwie dossh remote
) zostanie zabity (po stronie lokalnej) przez SIGINT wygenerowany przez wpisanie ctrl-C. Strona zdalna prawdopodobnie (w zależności od systemu operacyjnego) pozostanie uruchomiona, dopóki nie spróbuje odczytać lub zapisać w zamkniętym gnieździe. Jeśli chcesz, aby wszystkie twoje naciśnięcia klawiszy, w tym ctrl-C, były przekazywane do pilota, użyjssh remote
.