ubuntu實現開機自啓動服務

有時自己寫的或者是下的第三方軟件需要在開機自啓動,那麼在ubuntu下如何實現呢,主要要了解的知識就是linux的service和systemctl的功能,service可以實現服務的註冊,啓動,停止等,systemctl也可以實現上述service功能,除此之外它還能實現開機啓動等服務的管理,要實現開機自啓動主要也是使用這個功能,下面就講一下方法:
首先需要寫一個servcie的描述文件,需要在/lib/systemd/system目錄下創建一個service文件,如本文創建一個frps.servcie文件,文件的格式如下:

[Unit]
Description=Frps
After=network.target

[Service]
#Type=forking
ExecStart=/root/frp_0.29.1_linux_amd64/start.sh --daemonize no

[Install]
WantedBy=multi-user.target

Unit是描述這個服務的一些信息,Service的execStart指定服務啓動時要執行的shell腳本,除此之外還可以指定stop,restart等對應執行的動作。Install指定安裝時還需要依賴哪些組件。
這裏我指定了啓動時要執行/root/frp_0.29.1_linux_amd64/start.sh文件,這個文件實現如下:

#!/bin/sh
/root/frp_0.29.1_linux_amd64/frps -c /root/frp_0.29.1_linux_amd64/frps.ini
echo "run frps" > /root/frp_0.29.1_linux_amd64/frps.log

這個文件是啓動了frps這個程序,這裏很重要的一點是文件前面要加上 #!bin/sh 否則在執行時會出現 code=exited, status=203/EXEC
寫好後就可以使用systemctl命令要增加爲開機自啓動,執行以下命令就可以:

systemctl enable frps.service

查看是否已生效:

systemctl is-enable frps.service

如果修改了service文件需要reload:

systemctl reload

列出所有服務:

 systemctl list-unit-files

查看服務狀態:

systemctl status frps.service

以上就是實現開機啓動服務的方法,具體命令的使用請看其他專門介紹的文章, #!bin/sh 這個在執行的文件前要加上!!!這個很重要

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章