Здравствуйте! Представьте, что у нас есть программа, в которой последовательно выполняются несколько задач. Всё это пока что сделано через многопроцессность (может, нужна многопоточность?)
Код | .... int exit_status; pid_t reboot, waitress; .... reboot = fork(); //Создаём дочерний процесс if (reboot ==0) { ... execl(reboot_script, NULL); //Запускаем в нём скрипт, получающий доступ к удалённому компьютеру через SSH и перезагружающий его. Если цель достигнута, связь рвётся, программа зависает на минуту и более. ... } waitress = wait(&exit_status); //Ждём завершения дочернего процесса if (WIFEXITED (exit_status)) { //продолжаем работу }
|
Вопрос в следующем: как можно завершить дочерний процесс заранее, не дожидаясь, пока SSH поймёт, что у нас broken pipe. Может, можно послать какой-то сигнал принудительного закрытия, скажем, через 1 секунду? Спасибо! |