сценарий systemd для запуска моего сервера приложений - Неизвестное lvalue 'StartLimitIntervalSec' in section ' Unit '

У меня есть файл конфигурации выскочки, как показано ниже, который отлично работает в Ubuntu 14:

#/etc/init/data_server.conf
#sudo start data_server
#sudo stop data_server
#sudo status data_server

start on runlevel [2345]
stop on runlevel [016]

chdir /opt/hold/data_server
respawn

post-start script
    echo "data server started at `date +"%F %T"` on `hostname -f`" | mailx -r "abc@host.com" -s "data server Started" "pqr@host.com"
end script

post-stop script
  sleep 30
end script

limit core unlimited unlimited
limit nofile 100000 100000
setuid goldy
exec ./proc_server --init_file=../config/tree.init --port=8080 --dir=/data/hold/ --max_sec=2400 --max_mb=100 --active=5

Теперь мы переходим на Ubuntu 16, поэтому мы не можем использовать выскочку и похоже, что нам нужно использовать здесь systemd . Я должен убедиться, что при перезагрузке системы или завершении работы приложения мой скрипт systemd должен запускаться автоматически, который, в свою очередь, запускает мой сервер данных . Итак, я придумал сценарий ниже systemd : Сообщите мне, правильно ли я делаю это в первый раз?

[Unit]
Description=test server
After=network.target
StartLimitIntervalSec=0

[Service]
User=goldy
Group=goldy
Type=simple
WorkingDirectory=/opt/hold/data_server
ExecStart=/opt/hold/data_server/proc_server --init_file=../config/tree.init --port=8080 --dir=/data/hold/ --max_sec=2400 --max_mb=100 --active=5
Restart=always
RestartSec=3
LimitNOFILE=100000
LimitCORE=infinity

[Install]
WantedBy=multi-user.target

Каждый раз, когда я запускаю указанный выше сценарий, он выдает эту ошибку, Я не уверен, что не так?

[/lib/systemd/system/queue_server_two.service:3] Unknown lvalue 'StartLimitIntervalSec' in section 'Unit'
5
задан 27 March 2018 в 20:48
1 ответ

Вы, вероятно, сравниваете systemd документы, которые вы читали в Интернете, с другой версией, вместо того, чтобы использовать документы в вашей системе, соответствующие вашей версии.

Проверьте man systemd.unit в своей системе. Вы можете обнаружить, что в вашей версии директива называется

StartLimitInterval = и должна использоваться [Service] , а не [Unit] .

Я обнаружил ответ, выполнив поиск по запросу systemd StartLimitIntervalSec .

14
ответ дан 3 December 2019 в 01:00

Теги

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