一、启动脚本 /etc/rc.local 启动
最简单的一种方式,在启动脚本 /etc/rc.local (其实 /etc/rc.local 是/etc/rc.d/rc.local 的软链接文件,实际的脚本文件为 /etc/rc.d/rc.local)中添加要启动的程序。当然需要注意将 /etc/rc.d/rc.local 和 /etc/rc.local 添加启动权限。
这种方式虽然简单,但是并不能保证程序在其依赖的系统服务之后启动,所以有可能会启动不成功。
二、编写启动服务.service
centos支持为自定义的服务编写service文件。centos系统服务脚本目录:/usr/lib/systemd
。有系统(system)和用户(user) 之分,如需要开机没有登录的情况下就能运行的程序,存在系统服务里/lib/systemd/system/
;反之,需要用户登录之后才能运行的程序,存在用户里/lib/systemd/user/
,服务以 .service 结尾。
以ngix 开机运行为例:
1. 建立服务文件
nginx.service
[Unit]
Description=nginx
After=network.target [Service]
Type=forking
ExecStart=/www/lanmps/init.d/nginx start
ExecReload=/www/lanmps/init.d/nginx restart
ExecStop=/www/lanmps/init.d/nginx stop
PrivateTmp=true [Install]
WantedBy=multi-user.target
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]服务安装的相关设置,可设置为多用户
2.保存目录
以754的权限保存在目录 /lib/systemd/system 中。
3. 设置开机自启动 systemctl enable nginx.service
其他相关命令
任务 | 旧指令 | 新指令 |
---|---|---|
使某项服务自启动 | chkconfig --level 3 httpd on | systemctl enable httpd.service |
使某项服务不自启动 | chkconfig --level 3 httpd off | systemctl disable httpd.service |
检查服务状态 | serivce httpd status | systemctl status httpd.service |
显示已经启动的服务 | chkconfig --list | systemctl list-units --type=service |
启动某服务 | service httpd start | systemctl start httpd.service |
停止某服务 | service httpd stop | systemctl stop httpd.service |
重启某服务 | service httpd restart | systemctl restart httpd.service |
启动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