Несмотря на то, что cron работает, современный надежный способ сделать это на платформах Linux заключается в создании службы systemd
. Создав службу, systemd
автоматически создаст процесс и перезапустит его, если он завершится или завершится неудачно. Чтобы создать службу systemd
, выполните следующие действия.
Создайте файл в /etc/systemd/system
с расширением .service
. Этот файл определяет процесс, за которым мы хотим, чтобы systemd следил.
В этом файле мы можем выбрать, какая команда запускает сценарий, сколько времени ждать перед повторной попыткой, если процессы завершаются, какой пользователь создает процесс и т. Д. c. В этой статье и в этой статье перечислены некоторые общие параметры. В вашем случае вы хотите, чтобы ваш файл выглядел примерно так ...
[Unit]
Description=Runs script every 30 minutes
After=network-online.target
Requires=network-online.target # if your script connects to the internet, for example
Documentation= # maybe your github or something
[Service]
Type=simple
Restart=always
RestartSec=1800 # 30 minutes
User= # Your user, if you need particular permissions for example
WorkingDirectory= # The working directory you need
ExecStart= # The command to start the script you need
Начните свой сервис с
systemctl enable your_service_name.service
. Это обеспечит запуск вашей службы при каждой загрузке системы (замените
enable
на
disable
, чтобы остановить запуск службы при загрузке). Если вам нужно, чтобы он работал во время ЭТОЙ загрузки, используйте
systemctl start your_service_name.service
(переключение
start
с
stop
делает то, что вы ожидаете). Это подробно описано в статьях выше.