在Ubuntu18下編寫開機啟動服務及指令碼
阿新 • • 發佈:2018-12-10
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
如果不加上這一行,會出現莫名奇妙的錯誤,如圖:
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'.