Это не настоящее решение моего вопроса, но оно прекрасно решает то, что я хотел выполнить.
Я нашел Глобуса, чтобы заменить Gnome-Sushi с помощью этой очень приятной конструкции, которая намного легче.
Вообще говоря, для убийства процесса нет более безопасного способа убить процесс, чем при обычном убийстве (SIGTERM). В случае, если это интерактивный процесс, он обычно позволяет остановить его даже безопаснее, отправив сигнал SIGINT, обычно отправляемый нажатием Ctrl + C. Этот сигнал захватывается самим процессом, который может его прослушать, и обычно останавливается изящно. (спасибо Eliah)
Что касается управления пакетами, это своего рода частный случай. База данных DPKG, используемая командами APT под водой, всегда может определить, завершилась ли операция. Каждый пакет имеет состояние can , которое помечено как и текущее состояние, например. распакованные, настроенные и т. д. Убив интерфейс APT, база данных будет разбита, но в известном состоянии. Файлы блокировки будут освобождены только после того, как все вернется в чистое состояние - вы должны установить это исправление до тех пор, пока оно не разрешит новые операции.
Способ исправления - это просто запустить процесс, чтобы получить все пакеты в настроенной государство. Практически, если вы прервали операцию apt-get, вы можете закончить ее позже, используя
sudo dpkg --configure -a
. Он знает, как восстановить из разбитого состояния в полностью настроенное состояние и в этом смысле просто продолжайте с того места, где он был прерван. Файлы блокировки остаются там до тех пор, пока вы не закончите это, и это по какой-то причине - предотвратить новые операции с базой данных DPKG в нечистом состоянии.
Отправка SIGKILL (десятичное представление 9) очень небезопасно. Этот сигнал не улавливается процессом, но весь процесс будет очищен операционной системой (ядром) независимо от того, нравится это процессу или нет. Состояние файлов в файловой системе может быть оставлено в коррумпированном состоянии. Никогда не отправляйте эти сигналы, если они больше не прослушивают другие более грациозные сигналы.
Вообще говоря, для убийства процесса нет более безопасного способа убить процесс, чем при обычном убийстве (SIGTERM). В случае, если это интерактивный процесс, он обычно позволяет остановить его даже безопаснее, отправив сигнал SIGINT, обычно отправляемый нажатием Ctrl + C. Этот сигнал захватывается самим процессом, который может его прослушать, и обычно останавливается изящно. (спасибо Eliah)
Что касается управления пакетами, это своего рода частный случай. База данных DPKG, используемая командами APT под водой, всегда может определить, завершилась ли операция. Каждый пакет имеет состояние can , которое помечено как и текущее состояние, например. распакованные, настроенные и т. д. Убив интерфейс APT, база данных будет разбита, но в известном состоянии. Файлы блокировки будут освобождены только после того, как все вернется в чистое состояние - вы должны установить это исправление до тех пор, пока оно не разрешит новые операции.
Способ исправления - это просто запустить процесс, чтобы получить все пакеты в настроенной государство. Практически, если вы прервали операцию apt-get, вы можете закончить ее позже, используя
sudo dpkg --configure -a
. Он знает, как восстановить из разбитого состояния в полностью настроенное состояние и в этом смысле просто продолжайте с того места, где он был прерван. Файлы блокировки остаются там до тех пор, пока вы не закончите это, и это по какой-то причине - предотвратить новые операции с базой данных DPKG в нечистом состоянии.
Отправка SIGKILL (десятичное представление 9) очень небезопасно. Этот сигнал не улавливается процессом, но весь процесс будет очищен операционной системой (ядром) независимо от того, нравится это процессу или нет. Состояние файлов в файловой системе может быть оставлено в коррумпированном состоянии. Никогда не отправляйте эти сигналы, если они больше не прослушивают другие более грациозные сигналы.
Когда я сталкиваюсь с неудачей с apt-get, я делаю следующее (как root, т.е. sudo перед всеми командами):
Убейте процесс с именем apt-get: killall -9 apt-get Переконфигурируйте dpkg : dpkg --configure -a Обновить apt-get: apt-get update Обновить пакеты, в том числе неправильно установленные: apt-get upgradeЭто я узнал откуда-то, но, к сожалению, я точно не помню где.
sudo dpkg -r <package name>
В моем случае у меня были проблемы с Java 8 на Ubuntu 12.04, поэтому ...
sudo dpkg -r oracle-java8-installer
Вот как я это делаю, Ctrl+C. Но помните, что это безопасно, пока apt-get находится на этапе загрузки или обновляет кеш. Помимо этого я не могу думать, что это безопаснее. Просто позвольте этому закончить и отменить изменения, удалив или понизив как-нибудь. Загруженные файлы можно очистить с помощью sudo apt-get autoclean
Linux и другие системы типа Unix очень мощны из командной строки, но очень неумолимы после запуска процесса. Отправляя процесс, сигнал kill наверняка убьет процесс, который работает, но имейте в виду, что вы оставляете базу данных в неустойчивом состоянии. Последняя запись может быть закрыта неправильно, поэтому вам придется ремонтировать базу данных. Не всегда с apt, но с любым приложением.
Всегда старайтесь закончить приложение в обычном режиме и только убивать процессы, которые запускают приложения.
Когда я сталкиваюсь с неудачей с apt-get, я делаю следующее (как root, т.е. sudo перед всеми командами):
Убейте процесс с именем apt-get: killall -9 apt-get Переконфигурируйте dpkg : dpkg --configure -a Обновить apt-get: apt-get update Обновить пакеты, в том числе неправильно установленные: apt-get upgradeЭто я узнал откуда-то, но, к сожалению, я точно не помню где.
sudo dpkg -r <package name>
В моем случае у меня были проблемы с Java 8 на Ubuntu 12.04, поэтому ...
sudo dpkg -r oracle-java8-installer
Вот как я это делаю, Ctrl+C. Но помните, что это безопасно, пока apt-get находится на этапе загрузки или обновляет кеш. Помимо этого я не могу думать, что это безопаснее. Просто позвольте этому закончить и отменить изменения, удалив или понизив как-нибудь. Загруженные файлы можно очистить с помощью sudo apt-get autoclean
Linux и другие системы типа Unix очень мощны из командной строки, но очень неумолимы после запуска процесса. Отправляя процесс, сигнал kill наверняка убьет процесс, который работает, но имейте в виду, что вы оставляете базу данных в неустойчивом состоянии. Последняя запись может быть закрыта неправильно, поэтому вам придется ремонтировать базу данных. Не всегда с apt, но с любым приложением.
Всегда старайтесь закончить приложение в обычном режиме и только убивать процессы, которые запускают приложения.