在Ubuntu18下编写开机启动服务及脚本

Ubuntu18采用systemctl来管理开机启动的脚本,但是这里面有一些坑需要注意
举例来说

[Unit]
After=network.target

[Service]
Type=simple 
ExecStart=/usr/local/xxx.sh

[Install]
WantedBy=multi-user.target

1.编写的脚本/usr/local/xxx.sh的第一行一定要加上一行

#!/bin/sh

如果想让脚本在执行到过程中碰到错误就不往下面执行,将其改为

#!/bin/sh -e

如果不加上这一行,会出现莫名奇妙的错误,如图:
在Ubuntu18下编写开机启动服务及脚本_第1张图片

10月 13 20:06:38 systemd[1]: Started .service.
10月 13 20:06:38  systemd[5542]: .service: Failed to execute command: Exec format error
10月 13 20:06:38  systemd[5542]: .service: Failed at step EXEC spawning /usr/local/.sh: Exec format error
10月 13 20:06:38 systemd[1]: .service: Main process exited, code=exited, status=203/EXEC
10月 13 20:06:38 systemd[1]: .service: Failed with result 'exit-code'.

欢迎访问我的 个人网站(主要), Github, CSDN(主要), 博客园, 简书, 掘金, 知乎, 微信公众号:HelloVant(主要)

本文采用 知识共享 署名-非商业性使用-禁止演绎(CC by-nc-nd) 4.0 国际 许可协议 授权

你可能感兴趣的:(Linux)