使用systemd方式添加開機運行sh腳本


轉載自:https://blog.csdn.net/qq570437459/article/details/87094870;做了部分修改

ubuntu18.04壓根就沒有rc.local,而且很多發行版都推薦使用systemd而不是initd了。
1.准備好你的sh腳本文件

內容略過,就假設路徑是/usr/local/my/my.sh吧。別忘了chmod +x。
2.創建一個service文件

進入/etc/systemd/system/,創建一個my.service文件,內容如下:(可以用#添加注釋,和Python的注釋方式一樣)

[Unit]
Description=just for test  # 這里填簡介
After=BBB.service XXX.service  AAA.service  # 這里填上你這個腳本所需要的前置service,都在/etc/systemd/system/下【這一項可以不寫】

[Service]
ExecStart=/usr/local/my/my.sh  # 這里填sh文件路徑,比如這里運行了這個my.sh,后面也可以跟運行my.sh的參數,比如 -D -I【注意,這里不能直接寫命令簡稱,如"source /etc/environment"或source /etc/environment,但是可以用命令絕對名,如/usr/bin/python xx.py;最好用一個sh文件或py文件來執行命令】                                                                                                                           

[Install]
WantedBy=multi-user.target

如果是Python腳本,可以通過import os模塊,然后用os.system("ps aux|grep xx")來執行命令

3.完事

使用這條命令看my.service配置是否正確

systemctl status my.service

使用以下命令使能這個服務開機啟動:

# 重新加載配置文件
$ sudo systemctl daemon-reload              service文件改動后要重新reload一下(類似刷新到緩存里)
$ sudo systemctl enable my.service          這句是為了設置開機啟動

通過這條命令查看是否生效

systemctl list-unit-files | grep my.service

如果你想立刻啟動這個服務從而執行里面的sh腳本,就運行下面這句:

# 重啟相關服務
$ sudo systemctl start my.service           啟動服務

關於service文件里的一些選項,在

    http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM