LINUX.ORG.RU

народ, как так сделать


0

0

есть у меня прога, а в ней кусок кода, который выполняется, если произошла ошибка. Мне значит надо в этом куске кода сделать задержку на 5 минут, потом убить программу и запустить её-же саму себя.

Все это дело на с написано. Не кинете ли в меня кодом, как это сделать?? Ибо в сях я полный балбес.

Спасибо!

Дима

anonymous

или лучше, как на сях запустить внешнюю прогу?

или просто запуцщу перлскрипт с примерным содержанием:

#!/usr/bin/perl

sleep 300;
qx[killall socket.pl];
qx[killall my_cool_program];
qx[my_cool_program];
exit 1;

но так запустить, чтобы оно глобально форкнулось от той проги, ведь когда этот перлскрипт будет убивать запустившую его прогу, не факт, что он сам как чайлд по факту смерти парента умрет.

Ибо когда я в консоли пишу nohup ex.pl 1>stdout.log 2>stderror.log & то как бы я не пытался закрыть консколь, в неё валится вывод проги ex.pl, несмотря на то, что я её дважды оторвал от терминала через nohup и через &

anonymous
()

тоесть конечно же nohup ./ex.pl 1>stdout.log 2>stderror.log &

anonymous
()

нет, с перенаправлением вывода 1>stdout.log 2>stderror.log конечно не валится, но оторвать от терминала не могу никак... :^((

Приходится писать на перле такое вот хитрожопое форканье, а не хрена не выходит...

anonymous
()

Прочитал все сообщения, так и не понял в чем проблема.
Что значит "оторвать от терминала". Ты наверное глубокий смысл вкладываешь в это, но из слов ничего не понятно.

P.S. После setsid() твой процесс не будет иметь никаких связей с управляющим терминалом.

Murr ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.