Коли я запускаю Zotero / Firefox, вони часто виходять з ладу, і мені залишаються зомбі-процеси; після цього я не можу відкривати нові екземпляри Zotero або Firefox. Я хочу позбутися цих процесів зомбі, а не перезавантажувати, тому для <pid>
зомбі процесу,
$ ps -p <pid> -o ppid=
дає мені <parent_pid>
і
ps aux | awk -v PID=<parent_pid> '$2 == PID {print $0}'
говорить мені, що батьківський процес призначений /sbin/launchd
для користувача crippledlambda
.
Чи є спосіб перезапустити це, не вбиваючи мою систему?
sudo kill -1 <parent_pid>
нічого не робить. Я спробував написати це в сценарії та запустити його sudo
:
for i in `launchctl list | grep launchd | awk -v PID=<parent_pid> '$1==PID { print $NF }'`; do `launchctl stop $i && launchctl start $i` ; done
і це очевидно (?) залишає у мене невідповідний сірий екран, тому мені доведеться все-таки перезавантажуватися. Заздалегідь дякую за ваші пропозиції.
launchd
завжди слід негайно читати статуси виходу своїх дітей. Якщо вони не справді зомбі, то ви повинні їх вбивати. У будь-якому випадку вбивство launchd
спричинить більше проблем, ніж вирішує.