В Solaris 10 у меня есть родительский и дочерний процессы. Я убиваю дочерний процесс с помощью kill -KILL. Я хочу, чтобы это было возможно как можно быстрее в родительском процессе (это главная / подчиненная система, и цель заключается в том, чтобы родитель запросил резервное копирование как можно быстрее). Родительский процесс должен знать, что у ребенка запущен для выхода (ему не нужно ждать, пока у ребенка выйдет ).
В системе, с которой я работаю, я вижу задержку около 200 мс между отправкой SIGKILL и родительским процессом, получающим SIGCHLD. Я не думаю, что смогу сократить это время просто из-за размера дочернего процесса и времени, необходимого для его выхода - исправьте меня, если я ошибаюсь.
Я думаю, что мои варианты:
- Не посылай SIGKILL ребенку. Вместо этого отправьте сигнал родителю, чтобы он мог убить дочернего элемента (и, следовательно, мгновенно узнает, что дочерний процесс завершается). Это не идеально, потому что некоторые из команд kill -KILL находятся вне моего контроля, поэтому я не могу заменить их другим сигналом для родителя.
- Примите участие в обработке завершения для ребенка (я не думаю, что это возможно, потому что SIGKILL не может быть пойман).
- Есть еще идеи?
Спасибо за любой совет.
NickB