Що відбувається з запущеними процесами, коли я втрачаю віддалене з'єднання з * nix-коробкою?


16

Іноді я втрачаю віддалений SSH-з'єднання з моїм VPS. Я використовую screenдля тривалих процесів, але мені цікаво, що відбувається з тими процесами, у яких я біг, від тих, що працюють протягом screenсеансу, якщо я втрачу з'єднання з полем.

Коли я знову встановлюю з'єднання з коробкою, що сталося з процесами bash і sshd, які виконувались, коли я втратив з'єднання? Сьогодні я неодноразово втрачав зв’язок і помітив набагато більше процесів bash та sshd, ніж зазвичай.

Якщо навколо них висять процеси, чи потрібно їх вбивати? Як я міг визначити, які процеси були відмовлені від моєї попередньої сесії?

Дякуємо за будь-які відповіді!

Відповіді:


8

Зазвичай процеси припиняються після відключення, але старі сеанси SSH можуть або чекати на час очікування, або вони могли повісити після виходу через стан перегонів.

Ви, ймовірно, повинні припинити старі сеанси, хоча це не обов'язково. ps auxНа консолі введіть список процесів, а потім kill PIDдля кожного вивішеного ssh сеансу, де PID - PID (ідентифікатор процесу) для цього сеансу. Старіші, вивішені сеанси повинні мати менший PID, ніж ваш поточний, новий сеанс.

Якщо є тривалий процес, який ви хочете продовжувати виконувати навіть після відключення, ви можете префіксувати свою команду nohup:

nohup badblocks -nvs /dev/sda &

0

Коли сеанс ssh відмирає, пов'язані псевдо-tty закриваються та скидаються. Зазвичай оболонка та інші процеси, пов’язані з цим tty, вбиваються, оскільки вони є дочірніми процесами процесу, який її створив. Якщо довкола існують процеси, можливо, вони повернулися назад? Так, їх, мабуть, слід вбити - чистота поряд із побожністю. Вони забирають деякі ресурси - зазвичай не багато, але вони можуть накопичуватися через деякий час.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.