У меня есть машина Сервера Ubuntu, в которой я должен запустить скрипт Python:
Я искал в Интернете, и я узнал, что должен использовать sudo crontab -e
изменить мои настройки крона и добавить строку как этот:
30 * * * * python3 /myScriptPath/myScriptName.py
То, что я не мог найти, - то, как сказать крону, что мой скрипт должен быть запущен при начальной загрузке и затем каждые 30 минут и не каждый час в "hh:30" время.
Кроме того, где я должен сохранить свой сценарий?
Запишите сценарий удара и поместите, он в /etc/cron.d
#!/bin/bash
while true ; do
python3 /myScriptPath/myScriptName.py &
sleep 30m
done
Делает это исполняемым файлом chmod a+x /etc/cron.d/bashscript
.
Эти &
запускает задание в фоновом режиме, таким образом, сценарий будет спать в течение точно 30 минут. Можно удалить &
, и это изменяет сценарий для сна спустя 30 минут после того, как задание заканчивается. Означающие задания больше не запускаются на расстоянии в 30 минут.
, Вы не должны запускать сценарий, крон делает это автоматически во время начальной загрузки. Контролировать использование состояния:
$ systemctl status cron*
● cron.service - Regular background program processing daemon
Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2019-11-12 06:01:27 MST; 1 weeks 6 days ago
Docs: man:cron(8)
Main PID: 1115 (cron)
CGroup: /system.slice/cron.service
├─1115 /usr/sbin/cron -f
├─1132 /usr/sbin/CRON -f
├─1138 /bin/sh -c /usr/local/bin/eyesome.sh
├─1142 /bin/bash /usr/local/bin/eyesome.sh
├─1160 /bin/bash /usr/local/bin/eyesome-dbus.sh
├─1168 dbus-monitor --system type=method_call, interface=org.freedesktop.ColorManag
├─1169 /bin/bash /usr/local/bin/eyesome-dbus.sh
└─6575 sleep 57207
Ваш дисплей будет иметь cron
наверху и sleep
внизу, но не будет иметь eyesome
материал в середине, если Вы не будете использовать тот восход солнца/закат, несколько контролируют программное обеспечение перехода яркости/гаммы.
Для наблюдения, когда прогоны задания Python в он - затем 30-минутный интервал, выполняет запрос об идентификаторе процесса sleep
команда (который является 6575
в примере выше):
$ remaining_sleep_time 6575
55923
$ echo $((55923/60))
932
время, оставаясь составляет 55 923 секунды, разделенные на 60 секунд за минуту = за 932 минуты до того, как задание проснется. Для получения копии remaining_sleep_time
функция, см.: