Запустите скрипт в Linux для указанного количества времени прежде, чем остановить и перезапустить

Возможно связанный с этим предыдущим вопросом, я хотел бы смочь выполнить задачу для указанного количества времени, затем остановиться/уничтожить его, затем запустить его снова.

А именно, я запускаю приложение Folding@Home на своей рабочей станции Linux. Периодически, это испытает затруднения при входе домашнего сервера, и будет простаивать в течение долгого времени, но не освобождать память, которой это требовало (да, я понимаю, что это вероятно ошибка в инструменте, но я не могу в настоящее время фиксировать это). Обычно просто действие уничтожения и запуска инструмента позволит его регистрации снова.

Так, я хотел бы смочь выполнить что-то как:

run_for <time> ./fah6

Делает такой инструмент, существуют, или если я пишу обертку, чем уничтожения fah6 клиент после, скажем, неделя и перезапуск это?

2
задан 26.05.2018, 11:59

4 ответа

Я могу быть старой школой, но это походит на задание для крона. Просто уничтожьте / перезапускают его с кроном в некотором соответствующем расписании. Необходимо будет принять во внимание, может ли fah6 "взять, где он кончил" легко, но я не вижу проблемы с ежедневным перезапуском.

Hotei

5
ответ дан 08.12.2019, 04:36
sleep 60 & VAR=$! ; sleep 10 ; kill $VAR

В этом примере, 'сон 60' является заполнителем для команды, которую Вы хотите завершить рано. Замените '10' тем, сколько времени Вы хотите выполнить свою синхронизированную команду (самое большее) в секундах. Вышеупомянутое должно выйти после 10 секунд, уничтожив 'сон 60' процессов.

Обратите внимание, что это для удара.

3
ответ дан 08.12.2019, 04:36

cron будет работать, но если бы Вы только хотели выполненный однажды, или если бы время изменится со дня на день затем, было бы более просто использовать at (в странице справочника):

$ ./fah6 &
[1] 12345
$ at 1800
at> kill 12345
at> <EOT>

Шаги:

  • запустите fah6 как фоновое задание ( & в конце строки запускает его как фоновое задание). Следующая строка сообщает о числе процесса
  • в сопровождается к этому времени для окончания задания
  • at> подсказка появляется, тип уничтожают и число задания, о котором сообщают выше
  • прекратить вводить команды, завершенные путем нажатия Ctrl-D
1
ответ дан 08.12.2019, 04:36

Personnaly, я реализовал бы это в рамках сценария возможность выполнения, ожидания и уничтожения подпроцесса.

В Python с чем-то как:

http://docs.python.org/dev/library/multiprocessing.html

Если это не находится в Pyton, используйте os.system ('./fah6') в коде сценария, что дескриптор ожидает/останавливает/перезапускает

1
ответ дан 08.12.2019, 04:36

Теги

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