use*_*349 11 linux upstart systemd ubuntu-16.04
我有一个如下所示的新贵配置文件,它在 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
Run Code Online (Sandbox Code Playgroud)
现在我们正在迁移到 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
Run Code Online (Sandbox Code Playgroud)
每当我运行上面的脚本时,它都会给我这个错误,我不确定出了什么问题?
[/lib/systemd/system/queue_server_two.service:3] Unknown lvalue 'StartLimitIntervalSec' in section 'Unit'
Run Code Online (Sandbox Code Playgroud)
Mar*_*erg 19
您可能会比较systemd
您在线阅读的不同版本的文档,而不是使用系统上与您的版本匹配的文档。
检查man systemd.unit
您自己的系统。您可能会发现在您的版本中,该指令名为
StartLimitInterval=
并且应该使用[Service]
,而不是[Unit]
。
我通过搜索systemd StartLimitIntervalSec找到了答案。
归档时间: |
|
查看次数: |
17254 次 |
最近记录: |