tft每日頭條

 > 生活

 > linux開機自啟動程序教程

linux開機自啟動程序教程

生活 更新时间:2025-01-20 05:50:41
設置WGCloud開機自動啟動服務

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實際路徑

linux開機自啟動程序教程(Linux自定義開機自啟動服務腳本)1

2.添加可執行權限

chmod x wgcloudstart.sh

linux開機自啟動程序教程(Linux自定義開機自啟動服務腳本)2

測試下腳本是否能成功啟動server

./wgcouldstart.sh

linux開機自啟動程序教程(Linux自定義開機自啟動服務腳本)3

[root@localhost ~]# cd /etc/rc.d/init.d

[root@localhost ~]# chkconfig –add wgcouldstart.sh

[root@localhost ~]# chkconfig wgcouldstart.sh on

linux開機自啟動程序教程(Linux自定義開機自啟動服務腳本)4

# 關閉開機啟動

[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

linux開機自啟動程序教程(Linux自定義開機自啟動服務腳本)5

設置開機啟動并啟動服務

[root@RockyLinux system]# systemctl enable wgcloud.service

[root@RockyLinux system]# systemctl start wgcloud.service

linux開機自啟動程序教程(Linux自定義開機自啟動服務腳本)6

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的服務示例

linux開機自啟動程序教程(Linux自定義開機自啟動服務腳本)7

linux開機自啟動程序教程(Linux自定義開機自啟動服務腳本)8

linux開機自啟動程序教程(Linux自定義開機自啟動服務腳本)9

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved