ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 6.1 通过 systemctl 管理服务 ### 通过 systemctl 管理单一服务 (service unit) 的启动/开机启动与观察状态 在开始这个小节之前,鸟哥要先来跟大家报告一下,那就是:一般来说,服务的启动有两个阶段,一个是“开机的时候设置要不要启动这个服务”, 以及“你现在要不要启动这个服务”,这两者之间有很大的差异喔!举个例子来说,假如我们现在要“立刻取消 atd 这个服务”时,正规的方法 (不要用 kill) 要怎么处理? ``` [root@study ~]# 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 范例一:看看目前 atd 这个服务的状态为何? [root@study ~]# systemctl status atd.service atd.service - Job spooling tools Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled) Active: active (running) since Mon 2015-08-10 19:17:09 CST; 5h 42min ago Main PID: 1350 (atd) CGroup: /system.slice/atd.service └─1350 /usr/sbin/atd -f Aug 10 19:17:09 study.centos.vbird systemd[1]: Started Job spooling tools. # 重点在第二、三行喔~ # Loaded:这行在说明,开机的时候这个 unit 会不会启动,enabled 为开机启动,disabled 开机不会启动 # Active:现在这个 unit 的状态是正在执行 (running) 或没有执行 (dead) # 后面几行则是说明这个 unit 程序的 PID 状态以及最后一行显示这个服务的登录文件信息! # 登录文件信息格式为:“时间” “讯息发送主机” “哪一个服务的讯息” “实际讯息内容” # 所以上面的显示讯息是:这个 atd 默认开机就启动,而且现在正在运行的意思! 范例二:正常关闭这个 atd 服务 [root@study ~]# systemctl stop atd.service [root@study ~]# systemctl status atd.service atd.service - Job spooling tools Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled) Active: inactive (dead) since Tue 2015-08-11 01:04:55 CST; 4s ago Process: 1350 ExecStart=/usr/sbin/atd -f $OPTS (code=exited, status=0/SUCCESS) Main PID: 1350 (code=exited, status=0/SUCCESS) Aug 10 19:17:09 study.centos.vbird systemd[1]: Started Job spooling tools. Aug 11 01:04:55 study.centos.vbird systemd[1]: Stopping Job spooling tools... Aug 11 01:04:55 study.centos.vbird systemd[1]: Stopped Job spooling tools. # 目前这个 unit 下次开机还是会启动,但是现在是没在运行的状态中!同时, # 最后两行为新增加的登录讯息,告诉我们目前的系统状态喔! ```