服务
centos7以后,linux允许使用systemctl来管理服务
基本目录
基本目录:/usr/lib/systemd/system/
- 软件安装后,如果是通过服务启动,则服务的脚本就放置在该目录下
管理员目录:/etc/systemd/system/
- 自定义服务脚本目录,优先级高于基本目录,可以覆盖基本目录中的脚本
基本命令
systemctl [command] [unit]
command 主要有:
start :立刻启动后面接的 unit
stop :立刻关闭后面接的 unit
restart :立刻关闭后启动后面接的 unit,亦即执行 stop 再 start 的意思
reload :不关闭后面接的 unit 的情况下,重新载入配置文件,让设置生效
enable :设置下次开机时,后面接的 unit 会被启动
disable :设置下次开机时,后面接的 unit 不会被启动
status :目前后面接的这个 unit 的状态,会列出有没有正在执行、开机默认执行否、登录等信息等!
is-active :目前有没有正在运行中
is-enable :开机时有没有默认要启用这个 unit
编写service
- 自定义服务脚本目录,优先级高于基本目录,可以覆盖基本目录中的脚本
手动编写的service应该以.service结尾
- 编写服务后应该先使用
systemctl daemon-reload
来重载服务[Unit] # 这个项目与此 unit 的解释、执行服务相依性有关
Description=OpenSSH server daemon
After=network.target sshd-keygen.service
Wants=sshd-keygen.service
[Service] # 这个项目与实际执行的指令参数有关
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
[Install] # 这个项目说明此 unit 要挂载哪个 target 下面
WantedBy=multi-user.target