玩Centos经历一段时间了,Linux系统总是有很多形形色色的服务。如何管理这些服务了?Centos 这位大哥为我们提供了系统服务管理Systemd ,类似Windows Serivces.msc
玩Centos经历一段时间了,Linux系统总是有很多形形色色的服务。如何管理这些服务了?Centos 这位大哥为我们提供了系统服务管理Systemd ,类似Windows Serivces.msc Ubuntu Init。 Systemd有个小弟 systemctl 命令。它提供 service 和 chkconfig 命令的组合。如 systemctl list-unit --type=service 查看所有服务。可以看看 http://man.linuxde.net/systemctl。如何将程序服务方式开机自动启动?共两种:systemctl、chkconfig
- systemctl 方式:
- 编写相应脚本,每个服务对应一个脚本,并把脚本放置特定的目录:系统 /usr/lib/systemd/system,用户 /usr/lib/systemd/user 。 脚本文件必须.service结尾,内容分为3部分:[Unit]、[Service]和[Install],我写的这个服务用于开机运行Redis项目,reids.service 文件具体内容如下:
[Unit]Description=Redis persistent key-value databaseAfter=network.target[Service]ExecStart=/usr/bin/redis-server /etc/redis.conf --supervised systemdExecStop=/usr/libexec/redis-shutdownType=notifyUser=redisGroup=redisRuntimeDirectory=redisRuntimeDirectoryMode=0755[Install]WantedBy=multi-user.target
.[Unit]部分主要是对这个服务的说明。内容包括Description和After,Description用于描述服务,After用于描述服务类别
[Service]部分是服务的关键,是服务的一些具体运行参数的设置,这里Type=forking: 后台运行的形式,PIDFile: 存放PID的文件路径,ExecStart: 服务的具体运行命令,ExecReload: 重启命令,ExecStop: 停止命令,PrivateTmp=True: 服务分配独立的临时空间,注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,相对路径则会报错
[Install]部分是服务安装的相关设置,可设置为多用户的
- 754的权限保存在/usr/lib/systemd/system目录下
- systemctl enable redis
systemctl enable xxxx"服务名(文件名不带后缀)" 将所编写的服务添加至开机启动需要对脚本设置权限,使用systemctl start xxxx ”服务名(文件名不带后缀)“ 启动服务
systemctl status xxxx “服务名(文件名不带后缀)“ 查看服务状态,包括错误信息和其他服务信
systemctl stop xxxx ”服务名(文件名不带后缀)“ 停止服务