В Linux вы можете запустить bash скрипт как сервис через systemd (вместо использования планировщика cron). Таким образом вы можете обеспечить постоянный запуск скрипта, запускать скрипт при загрузке Linux, контролировать его состояние и использовать другие преимущества systemd.
Создайте файл со скриптом:
$ mcedit /usr/local/bin/myscript.sh
#!/bin/bash while true do //ваш код sleep 10 done
Разрешите запуск скрипта:
$ chmod +x /usr/local/bin/myscript.sh
Создайте юнит файл:
$ sudo mcedit /etc/systemd/system/myscript.service
[Unit] Description=Test Bash Script in Systemd After=network.target [Service] Type=simple ExecStart=/usr/local/bin/myscript.sh [Install] WantedBy=multi-user.target
After=network.target
.В секции [Service] можно дополнительно добавить различные опции:
- Type — определяет тип сервиса. По умолчанию используется simple. Тип oneshot значит, что сервис должен выполнить разовую задачу и завершиться;
- ExecStop – задать команду, которая нужно выполнить при остановке сервиса;
- RemainAfterExit=true указывает, что systemd будет считать сервис активным, несмотря на то, что процесс завершился.
Обновите конфигурацию systemd:
$ systemctl daemon-reload
Добавьте сервис в автозагрузку и запустите его:
$ systemctl enable myscript.service
$ systemctl start myscript.service
Проверьте что сервис запущен:
$ systemctl status myscript.service