Linux软件安装——服务管理的命令
摘要:本文主要学习了Linux系统中服务管理的命令。
service命令
service命令用于对系统服务进行管理,比如启动(start)、停止(stop)、重启(restart)、查看状态(status)等。
service命令本身是一个shell脚本,它在/etc/init.d/目录查找指定的服务脚本,然后调用该服务脚本来完成任务。
在CentOS 7版本以后,service命令可以被systemctl命令取代。
基本语法
1 service 服务名称 [操作]
操作说明
1 start:启动指定服务。
2 stop:停止指定服务。
3 restart:重启指定服务。
4 status:查看指定服务指定服务。
使用举例
1 [root@localhost ~]# service sshd status
2 Redirecting to /bin/systemctl status sshd.service
3 ● sshd.service - OpenSSH server daemon
4 Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
5 Active: active (running) since 四 2019-07-18 23:58:07 CST; 4 days ago
6 Docs: man:sshd(8)
7 man:sshd_config(5)
8 Main PID: 1474 (sshd)
9 CGroup: /system.slice/sshd.service
10 └─1474 /usr/sbin/sshd -D
11
12 7月 18 23:58:07 localhost.localdomain sshd[1474]: Server listening on :: port 22.
13 7月 18 23:58:25 localhost.localdomain sshd[1577]: Accepted password for root from 192.168.35.1 port 2561 ssh2
14 7月 19 05:58:26 localhost.localdomain sshd[2526]: Accepted password for root from 192.168.35.1 port 4203 ssh2
15 7月 19 07:49:06 localhost.localdomain sshd[2863]: Accepted password for root from 192.168.35.1 port 1072 ssh2
16 7月 19 10:31:53 localhost.localdomain sshd[3554]: Accepted password for root from 192.168.35.1 port 13890 ssh2
17 7月 21 07:56:32 localhost.localdomain sshd[11737]: Accepted password for root from 192.168.35.1 port 2852 ssh2
18 7月 21 22:27:13 localhost.localdomain sshd[13927]: Accepted password for root from 192.168.35.1 port 11588 ssh2
19 7月 22 13:05:22 localhost.localdomain sshd[17236]: Accepted password for root from 192.168.35.1 port 3655 ssh2
20 7月 23 00:15:46 localhost.localdomain sshd[18858]: Accepted password for root from 192.168.35.1 port 9576 ssh2
21 7月 23 01:12:35 localhost.localdomain sshd[19203]: Accepted password for root from 192.168.35.1 port 10673 ssh2
22 [root@localhost ~]#
chkconfig命令
chkconfig命令用来管理开机启动项,但设置开机启动时需要指定运行级别。
在CentOS 7版本以后,chkconfig命令可以被systemctl命令取代。
单元文件
一个单元配置文件可以描述如下内容之一:系统服务(.service)、挂载点(.mount)、sockets(.sockets)、系统设备(.device)、交换分区(.swap)、文件路径(.path)、启动目标(.target)、由systemd管理的计时器(.timer)。
使用systemctl控制单元时,通常需要使用单元文件的全名,包括扩展名(例如sshd.service)。但是有些单元可以在systemctl中使用简写方式:
如果无扩展名,systemctl默认把扩展名当作.service。例如sshd等价于sshd.service。
挂载点会自动转化为相应的.mount单元。例如/home等价于home.mount。
设备会自动转化为相应的.device单元。例如/dev/sda2等价于dev-sda2.device。
基本语法
1 chkconfig [选项] [on/off]
选项说明
1 --list 单元名称:查询系统单元运行级别信息,不指定则显示全部系统单元。
2 --level 运行级别:指定操作的运行级别,不指定级别时默认为2345级别。
使用举例
1 [root@localhost ~]# chkconfig --list
2
3 注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。
4 如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。
5 欲查看对特定 target 启用的服务请执行
6 'systemctl list-dependencies [target]'。
7
8 netconsole 0:关 1:关 2:关 3:关 4:关 5:关 6:关
9 network 0:关 1:关 2:开 3:开 4:开 5:开 6:关
10 [root@localhost ~]#
systemctl命令
在CentOS 7以后,systemctl命令用来设置系统服务,它融合之前service和chkconfig的功能于一体,使用它可以永久性或只在当前会话中启用/禁用服务。
基本语法
1 systemctl [选项]
选项说明
管理某个服务:
1 start 服务名称:立刻启动服务。
2 stop 服务名称:立刻关闭服务。
3 restart 服务名称:立刻关闭后启动服务。
4 reload 服务名称:不关闭服务的情况下,重新载入配置文件,让设置生效。
5 enable 服务名称:设置下次开机时,服务会被启动。
6 disable 服务名称:设置下次开机时,服务不会被启动。
7 is-active 服务名称:检查服务是否正在运行中。
8 is-enable 服务名称:检查服务是否在开机时默认启用。
9 status 服务名称:显示服务状态,会列出有没有正在执行、开机时是否启动等信息。
10 kill 服务名称:向运行服务的进程发送信号。
11 show 服务名称:列出服务的配置。
12 mask 服务名称:注销服务,注销后你就无法启动这个服务了。
13 unmask 服务名称:取消对服务的注销。
14 list-dependencies 服务名称:查看服务的依赖。
查看系统服务:
1 --type=TYPE:只查看某个类型的单元。
2 list-units:列出当前已经启动的单元(相当于不带任何参数执行systemctl命令),如果添加-all会同时列出没有启动的单元。
3 list-units --type=service:列出当前已经启动的服务(相当于不带任何参数执行systemctl命令),如果添加-all会同时列出没有启动的服务。
4 list-unit-files:根据/lib/systemd/system/目录内的文件列出所有的单元。
5 list-unit-files --type=service:根据/lib/systemd/system/目录内的文件列出所有的服务。
6 –failed:列出执行失败的单元。
7 –failed --type=service:列出执行失败的服务。
电源管理:
1 reboot:重启。
2 poweroff:退出并关闭电源。
3 suspend:待机。
4 hibernate:休眠。
5 hybrid-sleep:同时休眠到硬盘并待机。
使用举例
1 [root@localhost ~]# systemctl status sshd
2 ● sshd.service - OpenSSH server daemon
3 Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
4 Active: active (running) since 四 2019-07-18 23:58:07 CST; 4 days ago
5 Docs: man:sshd(8)
6 man:sshd_config(5)
7 Main PID: 1474 (sshd)
8 CGroup: /system.slice/sshd.service
9 └─1474 /usr/sbin/sshd -D
10
11 7月 18 23:58:07 localhost.localdomain sshd[1474]: Server listening on :: port 22.
12 7月 18 23:58:25 localhost.localdomain sshd[1577]: Accepted password for root from 192.168.35.1 port 2561 ssh2
13 7月 19 05:58:26 localhost.localdomain sshd[2526]: Accepted password for root from 192.168.35.1 port 4203 ssh2
14 7月 19 07:49:06 localhost.localdomain sshd[2863]: Accepted password for root from 192.168.35.1 port 1072 ssh2
15 7月 19 10:31:53 localhost.localdomain sshd[3554]: Accepted password for root from 192.168.35.1 port 13890 ssh2
16 7月 21 07:56:32 localhost.localdomain sshd[11737]: Accepted password for root from 192.168.35.1 port 2852 ssh2
17 7月 21 22:27:13 localhost.localdomain sshd[13927]: Accepted password for root from 192.168.35.1 port 11588 ssh2
18 7月 22 13:05:22 localhost.localdomain sshd[17236]: Accepted password for root from 192.168.35.1 port 3655 ssh2
19 7月 23 00:15:46 localhost.localdomain sshd[18858]: Accepted password for root from 192.168.35.1 port 9576 ssh2
20 7月 23 01:12:35 localhost.localdomain sshd[19203]: Accepted password for root from 192.168.35.1 port 10673 ssh2
21 [root@localhost ~]#
结果说明
首先是对服务的基本描述。
Loaded描述操作系统启动时会不会启动这个服务。
enabled表示开机时启动。disabled表示开机时不启动。static表示服务不可以自己启动,不过可能会被其它的enabled的服务来唤醒。mask表示服务已经被强制注销,可通过systemctl unmask改回原来的状态。
启动该服务的配置文件路径为:/lib/systemd/system/prometheus.service。
Active描述服务当前的状态和服务的启动时间。
active (running)表示服务正在运行中。inactive (dead)表示服务当前没有运行。active (exited)表示仅执行一次就正常结束的服务,目前并没有任何程序在系统中执行。active (waiting)表示服务正在执行当中,不过还再等待其他的事件才能继续处理。
Docs提供了在线文档的地址。
Main PID表示进程的ID,接下来是任务的数量,占用的内存和CPU资源。
CGroup描述的是CGroup的相关信息。
最后是输出的日志信息。