用于启动我的应用服务器的 systemd 脚本-'Unit' 部分中的未知左值'StartLimitIntervalSec'

用于启动我的应用服务器的 systemd 脚本-'Unit' 部分中的未知左值'StartLimitIntervalSec'

我有一个如下所示的 upstart 配置文件,它在 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 "[email protected]" -s "data server Started" "[email protected]"
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,所以我们不能使用upstart,但看起来我们需要systemd在这里使用。我必须确保每当系统重新启动或应用程序被终止时,它都应该systemd自动启动我的脚本,进而启动我的data server。所以我想出了下面的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'

答案1

您可能会比较systemd在线阅读的不同版本的文档,而不是使用系统上与您的版本相匹配的文档。

检查man systemd.unit一下你自己的系统。你可能会发现在你的版本上,该指令被命名为

StartLimitInterval=并且 应该被使用[Service],而不是[Unit]

我通过搜索找到了答案systemd StartLimitIntervalSec

相关内容