kill


bliznezz аватар

менеджер процессов: по очереди, в один поток

в последнее время в fedora linux, в репозитарии Everything лежит столько всего (16-19тыс пакетов на 20 гиг)..., а этих репо на работе - 6шт. ( для f11,f12,f13 под i386 и x86_64)
имея на файлсервере 4 процессора и 2гб оперативки, запустил createrepo (genpkgmetadata.py) по ним в 6 потоков, не подумав что каждый процесс захочет отожрать 1,3гб для личных нужд.
пришлось всё застопить (kill -SIGSTOP), дать операционке больше свопа чтобы там сидели застопленные процессы, и запускать их по одному.
родился такой однострочник:

for pid in `pgrep genpkgmetadata` ; do  kill -SIGCONT $pid ;  while kill -0 $pid ; do  sleep 1 ; done ; done
0
Ваша оценка: Ничего

Мониторинг процессов с помощью kill

Если у вас есть ID процесса, но вы не уверены правильный ли он, можно воспользоваться на первый взгляд самым последним средством: командой kill. Сигнал 0 является специальным и возвращаемое значение kill говорит о том, может ли сигнал быть отослан нужному процессу.

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)
ramok аватар

Кто занял apt базу?

Иногда при попытке использования apt случается такое:

ramok ~/ sudo apt-get update
E: Не могу получить доступ к файлу блокировки /var/lib/apt/lists/lock - open (11 Ресурс временно недоступен)
E: Невозможно заблокировать каталог со списками пакетов

Это обозначает что где то есть процесс который закрыл базу apt для использования. Это могло произойти в случае сбоя программы, которая закрыла базу и забыла ее открыть, или когда где то среди десятков открытых терминалов затерялось окно в котором запущена такая программа.

Посмотрим PID процесса занявший базу apt по лок-файлу

ramok [100]~/ sudo fuser /var/lib/apt/lists/lock
/var/lib/apt/lists/lock: 22069

Если есть желание, то можно посмотреть что за программа залочила базу apt

ramok ~/ ps aux | grep 22069
root     22069  2.3  2.2  28704 22792 pts/27   S+   11:22   0:01 apt-get upgrade

Убиваем процесс который занял базу:

ramok ~/ sudo fuser -k -TERM /var/lib/apt/lists/lock
/var/lib/apt/lists/lock: 22069
ramok ~/

или не мудрствуя лукаво

ramok ~/ sudo kill -TERM 22069
0
Ваша оценка: Ничего