欢迎来到资源库(www.zyku.net)

CentOS

当前位置:首页 > 服务器教程 > CentOS > CentOS7

CentOS7添加开机启动服务或脚本

时间:2022-03-31|栏目:CentOS|点击:|我要投稿

方法一:(rc.local)

1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权

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

2、赋予脚本可执行权限

假设/usr/src/iptables.sh是你的脚本路径,给予执行权限

chmod +x /usr/src/iptable.sh

3、打开/etc/rc.d/rc.local文件,在末尾增加如下内容

/usr/src/iptable.sh

方法二:(chkconfig)

1、将脚本移动或复制到/etc/rc.d/init.d目录下

cp /usr/src/iptable.sh /etc/rc.d/init.d

2、增加脚本的可执行权限

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

3、添加脚本到开机自动启动项目中

cd /etc/rc.d/init.d
chkconfig --add iptables.sh
chkconfig iptables.sh on

chkconfig启动脚本规范 在脚本开头加入下面内容:

#!/bin/sh
#chkconfig:2345 80 90
#decription:autostart

说明:chkonfig后面是启动级别和优先级,description后面是服务描述。如上面脚本意思是,

服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,停止的优先级是10。

优先级范围是0-100,数字越大,优先级越低。

注意:不添加以上内容的话添加启动项时会提示service myservice does not support chkconfig

Linux启动优先级

运行级别就是操作系统当前正在运行的功能级别。这个级别从0到6 ,具有不同的功能。

这些级别在/etc/inittab文件里指定。这个文件是init程序寻找的主要文件,最先运行的服务是那些放在/etc/rc.d 目录下的文件。

不同的运行级定义如下:(可以参考Linux里面的/etc/inittab)

# 缺省的运行级,RHS用到的级别如下:
0:关机
1:单用户模式
2:无网络支持的多用户模式
3:有网络支持的多用户模式
4:保留,未使用
5:有网络支持有X-Window支持的多用户模式
6:重新引导系统,即重启

# 对各个运行级的详细解释:
0 为停机,机器关闭。
1 为单用户模式,就像Win9x下的安全模式类似。
2  为多用户模式,但是没有NFS支持。 
3  为完整的多用户模式,是标准的运行级。
4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本 电脑的电池用尽时,可以切换到这个模式来做一些设置。
5  就是X11,进到X Window系统了。
6  为重启,运行init 6机器就会重启。

方法三:(systemd)

可以通过systemd添加自定义服务启动

CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下.

CentOS7的每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install]

[Unit]部分主要是对这个服务的说明,内容包括Description和After,Description 用于描述服务,After用于描述服务类别
[Service]部分是服务的关键,是服务的一些具体运行参数的设置.
Type=forking是后台运行的形式,
User=users是设置服务运行的用户,
Group=users是设置服务运行的用户组,
PIDFile为存放PID的文件路径,
ExecStart为服务的具体运行命令,
ExecReload为重启命令,
ExecStop为停止命令,
PrivateTmp=True表示给服务分配独立的临时空间

注意:

[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!

[Install]部分是服务安装的相关设置,可设置为多用户的

首先,使用systemctl start [ 服务名(也是文件名) ] 可测试服务是否可以成功运行,如果不能运行则可以使用systemctl status [ 服务名(也是文件名) ]查看错误信息和其他服务信息,然后根据报错进行修改,直到可以start,如果不放心还可以测试restart和stop命令。

接着,只要使用systemctl enable xxxxx就可以将所编写的服务添加至开机启动即可。

实例:服务用于开机运行tomcat项目:

1.在/usr/lib/systemd/system目录下创建文件,内容如下:

#vim /usr/lib/systemd/system/tomcat.service

[Unit]
Description=java tomcat project
After=tomcat.service
[Service]
Type=forking
User=users
Group=users
PIDFile=/usr/local/tomcat/tomcat.pid
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=
ExecStop=/usr/local/tomcat/bin/shutdown.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target

2.添加可执行权限:

chmod 754 /usr/lib/systemd/system/tomcat.service

3.设置为开机自启动:

systemctl enable tomcat.service

(资源库 www.zyku.net)

上一篇:CentOS 7系统安装配置图解教程

栏    目:CentOS

下一篇:CentOS 7 开机/etc/rc.local 不执行的问题

本文标题:CentOS7添加开机启动服务或脚本

本文地址:https://www.zyku.net/centos/11108.html

关于我们 | 版权申明 | 寻求合作 |

重要申明:本站所有的文章、图片、评论等内容,均由网友发表或上传并维护或收集自网络,仅供个人学习交流使用,版权归原作者所有。

如有侵犯您的版权,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:95148658 | 邮箱:mb8#qq.com(#换成@)

苏ICP备2020066115号-1

本网站由提供CDN加速/云存储服务