Вы правы, чтобы быть обеспокоенным.
Программы Unix/Linux могут регистрировать процедуры обработки сигналов. Они вызываются, когда они получают сигналы от операционной системы. Вы можете увидеть полный список сигналов, используя man 7 signal
(или онлайн здесь)
Когда вы вызываете kill
, он отправляет сигнал процессу. Сигнал по умолчанию - SIGTERM (это эквивалентно kill -15
, kill -TERM
или просто kill
), а поведение по умолчанию - выход из приложения. Более сложные приложения, возможно, в том числе Skype, настроят процедуру обработки сигналов для правильного закрытия соединений и, возможно, для сохранения некоторой информации о сеансе.
Когда вы kill -9
(или его эквивалентную kill -KILL
), вы отправляете SIGKILL. Как объясняется на странице справки по сигналам, «сигналы SIGKILL и SIGSTOP не могут быть перехвачены, заблокированы или проигнорированы». Это означает, что никакая подпрограмма обработки сигнала не будет выполняться, и все приятные мелочи, которые программисты Skype вводят, чтобы заставить их программное обеспечение работать в вашей системе, игнорируются.
Вы всегда должны пытаться убить процессы без -9
первую очередь. Если это не сработает, только тогда вы должны попробовать kill -9
.
В сторону: вы можете увидеть, что некоторые демоны поддерживают kill -HUP
для перезагрузки файла конфигурации. Эти программы имеют обработчики сигналов, настроенные для запуска при получении сигнала SIGHUP. Программа kill
названа так, чтобы предполагать, что она всегда убивает программы, но на самом деле это просто способ отправки сигналов.