Процессы убийства
Вообще говоря, для уничтожения процесса нет более безопасного способа уничтожения процесса, чем обычное уничтожение (SIGTERM). В случае, если это интерактивный процесс, он обычно позволяет остановить его еще безопаснее, отправив сигнал SIGINT, обычно отправляемый нажатием Ctrl+ C. Этот сигнал улавливается самим процессом, который может его прослушать - и обычно изящно останавливается. ( спасибо, Элия )
База данных DPKG
Относительно управления пакетами это особый случай. База данных DPKG, которую команды APT используют под водой, всегда может определить, не завершена ли операция. Каждый пакет имеет фактическое состояние, которое помечено так же, как и текущее состояние, например, распаковано, сконфигурировано и т. Д. При закрытии интерфейса APT база данных будет в поврежденном, но в известном состоянии. Файлы блокировки будут освобождены только после того, как они вернутся в чистое состояние - вы должны исправить это, пока он не разрешит новые операции.
Способ исправить это просто запустить процесс, чтобы получить все пакеты в настроенном состоянии. Практически говоря, если вы прервали apt-getоперацию, вы можете просто закончить ее позже, используя
sudo dpkg --configure -a
Он знает, как восстановиться из сломанного состояния в полностью настроенное состояние и в этом смысле просто продолжить с того места, где оно было прервано. Файлы блокировки остаются там до тех пор, пока вы не закончите это, и это по причине - чтобы предотвратить новые операции с базой данных DPKG в нечистом состоянии.
О СИГКИЛЛЕ (9)
Отправка SIGKILL (десятичное представление 9) очень небезопасно. Этот сигнал не перехватывается процессом, но операционная система (ядро) будет очищать весь процесс независимо от того, нравится он процессу или нет. Состояние файлов в файловой системе может быть оставлено в поврежденном состоянии. Никогда не отправляйте эти сигналы, если они больше не слушают другие более изящные сигналы.