1. 程式人生 > >Centos7開機啟動自己程式總結

Centos7開機啟動自己程式總結

首先,是我在網上搜到的2篇資料:

systemd.service 中文手冊

http://www.jinbuguo.com/systemd/systemd.service.html

在CentOS 7上利用systemctl新增自定義系統服務

http://www.linuxidc.com/Linux/2014-07/104487.htm


然後就是我自己按照上面介紹的文件編寫的自己的指令碼

1dashboard模組

[Unit]
Description=dashboard system
After=redis.service mysqld.service
 
[Service]
Type=forking
ExecStart=/home/cf-falcon/dashboard/control start
ExecStop=/home/cf-falcon/dashboard/control stop
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target
2 cf-falcon模組

[Unit]
Description=cf-falcon system
After=redis.service mysqld.service

[Service]
Type=forking
ExecStart=/home/cf-falcon/open-falcon start
ExecStop=/home/cf-falcon/open-falcon stop
PrivateTmp=true
TimeoutSec=500

[Install]
WantedBy=multi-user.target

3 解釋:

[Unit]
部分主要是對這個服務的說明,
Description::這部分內容就是描述服務的介紹,可以隨意寫
After:後面是填寫啟動本服務在哪些服務之後,意思就是比如我的需要依賴mysql 和 redis 的服務,那麼我就要把mysql 和 redis也做成開機啟動,然後這個服務是在他們2 後面啟動的意思


[Service]
部分是服務的關鍵,是服務的一些具體執行引數的設定
Type=forking是後臺執行的形式。
ExecStart為服務的具體執行命令
ExecStop為停止命令,
PrivateTmp=True表示給服務分配獨立的臨時空間,
TimeoutSec 是設定啟動需要的時間,單位是sec就是s的意思


這裡最重要注意:注意:[Service]部分的啟動、重啟、停止命令全部要求使用絕對路徑(包括引用的配置檔案也是絕對路徑),我覺得就這點很坑,使用相對路徑則會報錯!


[Install]部分是服務安裝的相關設定,可設定為多使用者的


服務指令碼按照上面編寫完成後,以754的許可權儲存在/usr/lib/systemd/system目錄下,這時就可以利用systemctl進行配置了


首先,使用systemctl start [服務名(也是檔名)]可測試服務是否可以成功執行,如果不能執行則可以使用 systemctl status[服務名(也是檔名)]檢視錯誤資訊和其他服務資訊,然後根據報錯進行修改,直到可以start,如果不放心還可以測試restart和stop命令。


接著,只要使用systemctl enable xxxxx就可以將所編寫的服務新增至開機啟動即可。

然後重啟centos7進行驗證


TIPS:

systemctl enable xxxxx 

就是將/usr/lib/systemd/system的檔案在/etc/systemd/system/ 目錄下加軟連線。