У меня есть процесс apt-get install
, который, кажется, безнадежно заклинивает на этапе processing triggers for python-support
.
Я склоняюсь к kill
этому, но в прошлом, просто kill
- процесс apt-get install
вызывал у меня много горя. (Остальные файлы блокировки IIRC остались позади и т. Д.)
Есть ли более безопасный способ остановить этот процесс?
Жалпысынан бир процессти өлтүрүү үчүн айтканда процессти өлтүрүүнүн кадимки өлтүрүүдөн (SIGTERM) караганда коопсуз ыкмасы жок. Эгер бул интерактивдүү процесс болсо, ал адатта Ctrl + C баскычтары аркылуу жөнөтүлгөн SIGINT сигналын жөнөтүп, аны коопсузураак токтотууга мүмкүндүк берет. Бул сигнал процесстин өзү тарабынан кармалып жатат аны уга алат , адатта, жагымдуу токтойт. ( Элиахка рахмат )
Топтомду башкаруу боюнча бул өзгөчө иш. APT командалары суунун астында колдонгон DPKG маалымат базасы ар дайым операция бүтө электигин аныктай алат. Ар бир таңгакта чыныгы абалы, ошондой эле учурдагы абалы белгиленет, мис. таңгактан чыгарылган, конфигурацияланган ж.б. APT фронтун өлтүрүү менен, маалымат базасы бузулган, бирок белгилүү абалында болот. Кулпуланган файлдар бардыгы таза абалга келгенден кийин гана чыгарылат - бул жаңы операцияларга мүмкүндүк бергенге чейин оңдолушу керек.
Түзөтүүнүн жолу - бардык пакеттерди конфигурацияланган абалда алуу процесси. Чындыгында, apt-get
операциясын үзгүлтүккө учураткан болсоңуз, анда аны кийинчерээк
sudo dpkg --configure -a
аркылуу бүтүрсөңүз болот, ал бузулган абалдан бардык конфигурацияланган абалга кантип келүүнү билет жана ушул мааниде жөн гана үзгүлтүккө учураган жерден уланта бериңиз. Кулпуланган файлдар сиз аны бүткүчө ошол жерде калтырылат, демек, таза эмес абалда DPKG маалымат базасы менен жаңы операциялардын алдын алуу.
SIGKILL жөнөтүү (ондук өкүлчүлүк 9) өтө кооптуу. Бул сигнал процессте байкалбайт, бирок процесс жакса да, каалабаса дагы, бүт процесс иштөө тутуму (ядро) тарабынан тазаланат. Файл тутумундагы файлдардын абалы бузулган абалда калтырылышы мүмкүн. Мындан ары жагымдуу сигналдарды укпаса, бул сигналдарды эч качан жөнөтпөңүз.
sudo dpkg -r <package name>
В моем случае у меня были проблемы с Java 8 на Ubuntu 12.04, поэтому ...
sudo dpkg -r oracle-java8-installer
Менде apt-get иштебей калганда, мен төмөнкүнү жасайм (root катары, башкача айтканда sudo
бардык буйруктардан мурун):
apt- деп аталган процессти өлтүрүңүз get:
killall -9 apt-get
dpkgди кайра конфигурациялоо:
dpkg --configure -a
apt-get жаңыртуу:
apt-get update
пакеттерди жаңыртуу, анын ичинде туура эмес орнотулган:
apt-get upgrade
Мен муну бир жерден билдим, бирок тилекке каршы так кайда экенин эстей албайм.
Linux жана башка Unix типтеги тутумдар буйрук сабынан абдан күчтүү, бирок процесс башталгандан кийин, кечиримсиз. Процессти өлтүрүү сигналы жөнөтүлсө, ал иштеп жаткан процессти өлтүрөт, бирок сиз маалымат базасын туруксуз абалда калтырганыңызды эсиңизден чыгарбаңыз. Акыркы жазуу туура жабылбашы мүмкүн, андыктан маалымат базасын оңдоп-түзөөгө туура келет. Апт менен гана эмес, ар кандай тиркеме менен.
Ар дайым колдонмону кадимки тартипте бүтүрүүгө аракет кылып, колдонмолор иштеп жаткан процесстерди гана өлтүрүңүз.
Мен муну ушуну менен жасайм, Ctrl + C Бирок apt-get жүктөө баскычында же анын коопсуздугун эске алыңыз. анын кэшин жаңыртуу. Андан тышкары, мен коопсузураак жол таба албайм. Жөн гана аны аягына чейин чыгарып, кандайдыр бир жол менен төмөндөтүү менен өзгөртүүлөрдү жокко чыгарыңыз.
Жүктөлүп алынган файлдарды sudo apt-get autoclean