init.d目錄下新建腳本
在/etc/rc.d/init.d新建啟動腳本wgcloudstart.sh,内容如下
#!/bin/bash
#chkconfig: 35 20 80 分别代表運行級别,啟動優先權,關閉優先權,此行代碼必須
#description: wgcloud server
/bin/echo $(/bin/date %F_%T) >> /tmp/wgcloud.log
/usr/local/wgcloud-v3.3.3/server/start.sh
/usr/local/wgcloud-v3.3.3/server/start.sh為自己的agent實際路徑
2.添加可執行權限
chmod x wgcloudstart.sh
測試下腳本是否能成功啟動server
./wgcouldstart.sh
[root@localhost ~]# cd /etc/rc.d/init.d
[root@localhost ~]# chkconfig –add wgcouldstart.sh
[root@localhost ~]# chkconfig wgcouldstart.sh on
# 關閉開機啟動
[root@localhost ~]# chkconfig startAgent.sh off
# 從chkconfig管理中删除startAgent.sh
[root@localhost ~]# chkconfig --del startAgent.sh
# 查看chkconfig管理
[root@localhost ~]# chkconfig --list startAgent.sh
使用systemctl管理創建自動啟動服務Systemd 目錄
Unit 文件按照 Systemd 約定,應該被放置指定的三個系統目錄之一中。這三個目錄是有優先級的,如下所示,越靠上的優先級越高。因此,在三個目錄中有同名文件的時候,隻有優先級最高的目錄裡的那個文件會被使用。
/etc/systemd/system:系統或用戶自定義的配置文件
/run/systemd/system:軟件運行時生成的配置文件
usr/lib/systemd/system:系統或第三方軟件安裝時添加的配置文件 (常用目錄)
cd /usr/lib/systemd/system/
[root@RockyLinux system]# vim wgcloud.service
[Unit]
Description=wgcloud service
After=syslog.target
[Service]
Type=forking
ExecStart=/usr/local/wgcloud-v3.3.3/server/start.sh
ExecStop=/usr/local/wgcloud-v3.3.3/server/stop.sh
PrivateTmp=true
User=root
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
設置開機啟動并啟動服務
[root@RockyLinux system]# systemctl enable wgcloud.service
[root@RockyLinux system]# systemctl start wgcloud.service
systemd常用命令
systemctl restart 服務名 #重起服務
systemctl start 服務名 #開啟服務
systemctl stop 服務名 #停止服務
systemctl status 服務名 #查看服務當前的狀态
systemctl enable 服務名 #設置服務開機自啟動
systemctl disable 服務名 #設置服務不開機自啟動
service文件内容說明
[Unit]
Description:給出當前服務的簡單描述。
Documentation:給出文檔位置。
After:service服務之後要啟動的。
Before:service服務之前要啟動的。
[Service]
Type:啟動類型,它可以設置的值如下:
simple(默認值):ExecStart字段啟動的進程為主進程
forking:ExecStart字段将以fork()方式啟動,此時父進程将會退出,子進程将成為主進程(後台運行)
oneshot:類似于simple,但隻執行一次,Systemd 會等它執行完,才啟動其他服務
dbus:類似于simple,但會等待 D-Bus 信号後啟動
notify:類似于simple,啟動結束後會發出通知信号,然後 Systemd 再啟動其他服務
idle:類似于simple,但是要等到其他任務都執行完,才會啟動該服務。一種使用場合是為讓該服務的輸出,不與其他服務的輸出相混合)
PrivateTmp=true :創建私有的内存臨時空間
User=root :以什麼用戶身份運行
SuccessExitStatus=143 :成功退出狀态
PIDFile=/opt/web/mybase/jetty.pid :pid文件存放位置
[Install]
Install區塊,定義如何安裝這個配置文件,即怎樣做到開機啟動。
WantedBy字段:表示該服務所在的 Target。
常用的 Target 有兩個:
multi-user.target:表示多用戶命令行狀态;
graphical.target:表示圖形用戶狀态,它依賴于multi-user.target。
Target的含義是服務組,表示一組服務。執行systemctl enable sshd.service命令時,sshd.service的一個符号鍊接,就會放在/etc/systemd/system目錄下面的multi-user.target.wants子目錄之中
下面是一個jetty的服務示例
[Unit]
Description=Jetty Web Application Server
After=syslog.target
[Service]
Type=forking
ExecStart=/data/scm/jetty/jetty-distribution-9.4.31.v20200723/bin/jetty.sh start
ExecReload=/data/scm/jetty/jetty-distribution-9.4.31.v20200723/bin/jetty.sh restart
ExecStop=/data/scm/jetty/jetty-distribution-9.4.31.v20200723/bin/jetty.sh
PrivateTmp=true
User=root
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
下面是一個nginx的服務示例
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!