Возможно связанный с этим предыдущим вопросом, я хотел бы смочь выполнить задачу для указанного количества времени, затем остановиться/уничтожить его, затем запустить его снова.
А именно, я запускаю приложение Folding@Home на своей рабочей станции Linux. Периодически, это испытает затруднения при входе домашнего сервера, и будет простаивать в течение долгого времени, но не освобождать память, которой это требовало (да, я понимаю, что это вероятно ошибка в инструменте, но я не могу в настоящее время фиксировать это). Обычно просто действие уничтожения и запуска инструмента позволит его регистрации снова.
Так, я хотел бы смочь выполнить что-то как:
run_for <time> ./fah6
Делает такой инструмент, существуют, или если я пишу обертку, чем уничтожения fah6
клиент после, скажем, неделя и перезапуск это?
Я могу быть старой школой, но это походит на задание для крона. Просто уничтожьте / перезапускают его с кроном в некотором соответствующем расписании. Необходимо будет принять во внимание, может ли fah6 "взять, где он кончил" легко, но я не вижу проблемы с ежедневным перезапуском.
Hotei
sleep 60 & VAR=$! ; sleep 10 ; kill $VAR
В этом примере, 'сон 60' является заполнителем для команды, которую Вы хотите завершить рано. Замените '10' тем, сколько времени Вы хотите выполнить свою синхронизированную команду (самое большее) в секундах. Вышеупомянутое должно выйти после 10 секунд, уничтожив 'сон 60' процессов.
Обратите внимание, что это для удара.
cron
будет работать, но если бы Вы только хотели выполненный однажды, или если бы время изменится со дня на день затем, было бы более просто использовать at
(в странице справочника):
$ ./fah6 &
[1] 12345
$ at 1800
at> kill 12345
at> <EOT>
Шаги:
&
в конце строки запускает его как фоновое задание). Следующая строка сообщает о числе процессаat>
подсказка появляется, тип уничтожают и число задания, о котором сообщают вышеPersonnaly, я реализовал бы это в рамках сценария возможность выполнения, ожидания и уничтожения подпроцесса.
В Python с чем-то как:
http://docs.python.org/dev/library/multiprocessing.html
Если это не находится в Pyton, используйте os.system ('./fah6') в коде сценария, что дескриптор ожидает/останавливает/перезапускает