centos7 新增開機啟動服務 指令碼

2022-06-17 12:48:12 字數 4367 閱讀 7113

centos 7的服務systemctl指令碼存放在:/usr/lib/systemd/,

有系統(system)和使用者(user)之分,像需要開機不登陸就能執行的程式,

還是存在系統服務裡吧,即:/usr/lib/systemd/system目錄下

每乙個服務以.service結尾,一般會分為3部分:[unit]、[service]和[install]

在centos7中新增開機自啟服務非常方便,只需要兩條命令(以jenkins為例):

systemctl enable jenkins.service #設定jenkins服務為自啟動服務

sysstemctl start jenkins.service #啟動jenkins服務

1.建立服務檔案

檔案路徑

vim /usr/lib/systemd/system/nginx.service

服務檔案內容

1.nginx.service

[unit]

description=nginx - high performance web server

after=network.target remote-fs.target nss-lookup.target

[service]

type=forking

execstart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

execreload=/usr/local/nginx/sbin/nginx -s reload

execstop=/usr/local/nginx/sbin/nginx -s stop

[install]

wantedby=multi-user.target

2.mysql.service

[unit]

description=mysql

after=network.target remote-fs.target nss-lookup.target

[service]

type=forking

execstart=/usr/local/mysql/support-files/mysql.server start

#execreload=/usr/local/mysql/support-files/mysql.server restart

#execstop=/usr/local/mysql/support-files/mysql.server stop

#privatetmp=true

[install]

wantedby=multi-user.target

3.php-fpm.service

[unit]

description=php

after=network.target remote-fs.target nss-lookup.target

[service]

type=forking

execstart=/usr/local/php/sbin/php-fpm

[install]

wantedby=multi-user.target

4.redis.service

[unit]

description=redis

after=network.target remote-fs.target nss-lookup.target

[service]

type=forking

execstart=/usr/local/bin/redis-server /etc/redis.conf

execstop=kill -int `cat /tmp/redis.pid`

user=www

group=www

[install]

wantedby=multi-user.target

5.supervisord.service

[unit]

description=process monitoring and control daemon

after=rc-local.service

[service]

type=forking

execstart=/usr/bin/supervisord -c /etc/supervisord.conf

sysvstartpriority=99

[install]

wantedby=multi-user.target

檔案內容解釋
[unit]:服務的說明

description:描述服務

after:描述服務類別

[service]服務執行引數的設定

type=forking是後台執行的形式

execstart為服務的具體執行命令

execreload為重啟命令

execstop為停止命令

privatetmp=true表示給服務分配獨立的臨時空間

注意:啟動、重啟、停止命令全部要求使用絕對路徑

[install]服務安裝的相關設定,可設定為多使用者

2.儲存目錄

以754的許可權儲存在目錄:

/usr/lib/systemd/system/ 

3.設定開機自啟動

任意目錄下執行

systemctl enable nginx.service 

4.其他命令

啟動nginx服務

systemctl start nginx.service

設定開機自啟動

systemctl enable nginx.service

停止開機自啟動

systemctl disable nginx.service

檢視服務當前狀態

systemctl status nginx.service

重新啟動服務

systemctl restart nginx.service

檢視所有已啟動的服務

systemctl list-units --type=service

在centos7中增加指令碼有兩種常用的方法,以指令碼autostart.sh為例:

#!/bin/bash

#description:開機自啟指令碼

/usr/local/tomcat/bin/startup.sh #啟動tomcat

1、賦予指令碼可執行許可權(/opt/script/autostart.sh是你的指令碼路徑)

chmod +x /opt/script/autostart.sh 

2、開啟/etc/rc.d/rc.local檔案,在末尾增加如下內容

/opt/script/autostart.sh 

3、在centos7中,/etc/rc.d/rc.local的許可權被降低了,所以需要執行如下命令賦予其可執行許可權

chmod +x /etc/rc.d/rc.local

service httpd start 其實是啟動了存放在/etc/init.d目錄下的指令碼。

1、將指令碼移動到/etc/rc.d/init.d目錄下

mv  /opt/script/autostart.sh /etc/rc.d/init.d

2、增加指令碼的可執行許可權

chmod +x  /etc/rc.d/init.d/autostart.sh

3、新增指令碼到開機自動啟動專案中

cd /etc/rc.d/init.d

chkconfig --add autostart.sh

chkconfig autostart.sh on

centos7 新增開機啟動服務 指令碼

在centos7中新增開機自啟服務非常方便,只需要兩條命令 以jenkins為例 systemctl enable jenkins.service 設定jenkins服務為自啟動服務 sysstemctl start jenkins.service 啟動jenkins服務在centos7中增加指令碼...

CentOS 7新增開機啟動服務 指令碼

一 新增開機自啟服務 在centos7 中新增開機自啟服務非常方便,只需要兩條命令 以jenkins為例 systemctl enable jenkins.service 設定jenkins服務為自啟動服務 sysstemctl start jenkins.service 啟動jenkins服務 二...

CentOS 7新增開機啟動服務 指令碼

一 新增開機自啟服務 在centos 7中新增開機自啟服務非常方便,只需要兩條命令 以jenkins為例 systemctl enable jenkins.service 設定jenkins服務為自啟動服務 systemctl start jenkins.service 啟動jenkins服務 li...