Создать случайное время между 00 :00 :20 и 10 :10 :00

Если ваше приложение Ruby конфликтует со службой httpd, я не понимаю, почему вы должны поддерживать работу этой службы только для того, чтобы остановить ее в своемrun.sh:просто запустите systemctl disable httpdодин раз, и она даже не будет запущена.

Теперь вы можете полностью удалить свой run.shи создать свой служебный файл с Type=simpleи ExecStart=/full/path/to/rails s -p 80. Обратите внимание на удаление опции -d; это сделано намеренно и хорошо работает с Type=simple.

Для страховки вы можете добавить Conflicts=httpd.service, чтобы сообщить systemd, что ваша служба и httpdне могут работать одновременно.

Итак, ваш /etc/systemd/system/my-ruby-application.serviceдолжен выглядеть так:

# Start the ruby on rails app on boot
[Unit]
Description=Start Ruby Online Ordering Application
Conflicts=httpd.service

[Service]
Type=simple
Username=root
PIDFile=/home/deviant/www/tmp/pids/server.pid
WorkingDirectory=/home/deviant/www
ExecStart=/some/full/path/rails s -p 80
TimeoutSec=300

[Install]
WantedBy=multi-user.target

Чтобы заставить systemdперезапустить службу в случае сбоя по какой-либо причине, добавьте параметр Restart=, соответствующий вашим требованиям (см. Таблицу 2 вman systemd.service). Если вы это сделаете, рекомендуется также добавить RestartSec=<sensible restart delay>, чтобы избежать зависания вашего сервера с повторными попытками перезапуска с интервалом 0,1 с (по умолчанию ), если ваша служба продолжает сбой после каждой попытки перезапуска, возможно, потому что вы редактировали его конфигурационный файл и случайно допустили ошибку.

После того, как вы отредактировали файл my-ruby-application.service, вы должны запустить systemctl daemon-reload, затем systemctl disable httpdи systemctl stop httpd, если вы еще этого не сделали, и, наконец, systemctl enable my-ruby-applicationи systemctl start my-ruby-application.

5
08.04.2020, 23:23
1 ответ

Я не получил того, что вы получили с помощью вашей команды date, так что я могу ошибаться насчет того, что вы хотите.

Чтобы сгенерировать время между 00 :00 :20 и 10 :10 :00 с помощью GNU date, вы можете сделать:

время начала:

$ date --date "1970-01-01 00:00:20" '+%T'
00:00:20

время окончания (36580 секунд спустя):

$ date --date "1970-01-01 00:00:20 36580 sec" '+%T'
10:10:00

нечто среднее:

date --date "1970-01-01 00:00:20 $(shuf -n1 -i0-36580) sec" '+%T'
3
28.04.2021, 23:18

Теги

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