CentOS7
系统
服务
脚本
目录:
/usr/lib/systemd/
有系统
(system)
和用户
(user)
之分
如需要
开机没有登陆
情况下就能运行的程序
,
放在
系统服务
(system)
里,即:
/usr/lib/systemd/system/
反之,用户
登录后
才能
运行的程序
,
放在
用户
(user)
里,即:
/usr/lib/systemd/user/
服务以
.service
结尾。
这边以nginx开机运行为例
1.建立服务文件
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
Documentation=http://nginx.org/en/docs/
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
######################
[Unit] 服务的说明
Description 描述服务
Documentation 服务文档
After
依赖
,仅当依赖的服务启动之后再启动自定义的服务单元
[Service] 服务运行参数的设置
Type=forking 是后台运行的形式
ExecStart 为服务的具体运行命令
ExecReload 为重启命令
ExecStop 为停止命令
PrivateTmp=True 表示给服务分配独立的临时空间
注意:
[Service]的启动、重启、停止命令全部要求使用
绝对路径
Type=simple(默认值) systemd认为该服务将立即启动。服务进程不会fork。如果该服务要启动其他服务,不要使用此类型启动,除非该服务是socket激活型
Type=forking systemd认为当该服务进程fork,且父进程退出后服务启动成功。对于常规的守护进程(daemon),除非你确定此启动方式无法满足需求,使用此类型启动即可。使用此启动类型应同时指定PIDFile=,以便systemd能够跟踪服务的主进程
Type=oneshot 这一选项适用于只执行一项任务、随后立即退出的服务。可能需要同时设置 RemainAfterExit=yes 使得 systemd 在服务进程退出之后仍然认为服务处于激活状态
Type=notify 与 Type=simple 相同,但约定服务会在就绪后向 systemd 发送一个信号。这一通知的实现由 libsystemd-daemon.so 提供。
Type=dbus 若以此方式启动,当指定的 BusName 出现在DBus系统总线上时,systemd认为服务就绪
[Install]
服务安装的相关设置,可设置为多用户
#######################
2.保存目录
以754的权限保存在目录:
/lib/systemd/system
3.设置开机自启动
systemctl enable nginx.service
4.其他命令
任务
|
旧指令
|
新指令
|
使某服务自动启动
|
chkconfig --level 3 httpd on
|
systemctl enable httpd.service
|
使某服务不自动启动
|
chkconfig --level 3 httpd off
|
systemctl disable httpd.service
|
检查服务状态
|
service httpd status
|
systemctl status httpd.service (服务详细信息)
systemctl is-active httpd.service (仅显示是否 Active)
|
显示所有已启动的服务
|
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
列出所有服务,包括没有找到配置文件的或者启动失败的
systemctl list-units --all
列出所有没有启动运行的服务
systemctl list-units --all --state=inactive
列出所有启动失败的服务
systemctl list-units --failed
列出服务的开机状态
systemctl list-unit-files
查看所有已启动的服务
systemctl list-units --type=service
附
Nginx默认服务文件
Link