Команда pkill с sessionid не уничтожает все дерево процессов

Я выполняю следующую команду для остановки всего дерева процессов (т. Е. Родительского и всех его дочерних / внучестных процессов):

pkill -9 -s {sessionID}

Для получения sessionID я использую следующую команду:

[ 111]

Иногда команда pkill убивает все дерево процессов, но иногда это не работает. Некоторые дочерние процессы все еще работают в фоновом режиме. Почему это так? Что-то не так в моей логике? Отсутствует ли какое-либо граничное условие? Есть ли ситуации, когда команда pkill не убивает дочерние процессы?

0
задан 26 May 2015 в 08:59

1 ответ

Дети процесса не должны обязательно совместно использовать его идентификатор сессии. Если бы это имело место, каждый , то процесс имел бы идентификатор 1 сессии. Можно также попытаться использовать идентификаторы группы процесса, но это также имеет то же ограничение.

Обход через дерево процесса имеет ограничение, что процессы с двойной развилкой не являются частью дерева больше, но могли бы быть Вашим лучшим выбором. Примеры этого метода:

0
ответ дан 26 May 2015 в 08:59
  • 1
    Еще раз спасибо я записал сценарий теперь для Gphoto для выполнения задач и протестировал его, и он хорошо работает от терминала. Мой сценарий сохраняется в "/home/pi/timelapse.sh" и когда я пишу крон, чтобы сделать фотографию в примере 23:30, я записал следующее в crontab-e " 30 23 * * */home/pi/timelapse.sh, но никакая радость. Я думаю, что пропускаю часть команды или сохраняю sh в неправильном месте. – emmet mcnamee 25 August 2016 в 11:28

Другие вопросы по тегам:

Похожие вопросы: