Linux服务管理之系统管理员需要掌握的命令

systemd的主要命令行工具是systemctl。大多数Linux系统管理员应该都已经非常熟悉系统服务和init系统管理,比如service,chkconfig和telinit命令的使用。systemd也完成同样的管理任务,只是命令工具systemctl的语法有所不同而已。

1. sysvinit和systemd的命令对比列表

下表帮助系统管理员了解systemd中可以取代原先sysvinit工作流程的命令。注意:service和chkconfig这两个命令在systemd环境下依然可用。这里以sshd服务为例:

sysvinit命令                 
systemd命令                   
备注 
service sshd start
systemctl start sshd.service
用来启动一个服务(并不会重启现有的服务)
service sshd stop
systemctl stop sshd.service
用来停止一个服务(并不会重启现有的服务)
service sshd restart
systemctl restart sshd.service
用来停止并启动一个服务
service sshd reload
systemctl reload sshd.service
当支持时,重新装载配置文件而不中断等待操作
service sshd condrestart
systemctl condrestart sshd.service
如果服务正在运行,那么重启它
service sshd status
systemctl status sshd.service
汇报服务是否正在运行
ls /etc/rc.d/init.d/
systemctl list-unit-files --type=service
ls /lib/systemd/system/*.service
/etc/systemd/system/*.service
用来列出可以启动或停止的服务列表
chkconfig sshd on
systemctl enable sshd.service
在下次启动时或满足其他触发条件时设置服务为启动
chkconfig sshd off
systemctl disable sshd.service
在下次启动时或满足其他触发条件时设置服务为禁用
chkconfig sshd
systemctl is-enabled sshd.service
用来检查一个服务在当前环境下被配置为启用还是禁用
chkconfig --list
systemctl list-unit-files --type=service(推荐)
ls /etc/systemd/system/*.service
输出在各个运行级别下服务的启用和禁用情况
chkconfig sshd --list
ls /etc/systemd/system/*.wants/sshd.service
用来列出该服务在哪些运行级别下启用和禁用
chkconfig sshd --add
systemctl daemon-reload
当创建新服务文件或者变更设置时使用

注意:以上列出的所有/sbin/service 和 /sbin/chkconfig 在systemd环境下依然可以工作,并且在必要的情况下将会被翻译成原生的等效命令。唯一的例外是 chkconfig --list。

sysvinit 和 systemd 改变运行级别命令对比表:

sysvinit命令                
systemd命令                      
备注
telinit 3
systemctl isolate multi-user.target
或者
systemctl isolate runlevel3.target OR telinit 3
改变至多用户运行级别
sed s/^id:.*:initdefault:/id:3:initdefault:/
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
设置在下一次启动时使用多用户运行级别

sysvinit 和 systemd 电源管理命令对比表:

sysvinit命令                                            
systemd命令           
操作
reboot
systemctl reboot
重启机器
halt -p
systemctl poweroff
关机
echo standby > /sys/power/statc
systemctl suspend
待机
echo platform > /sys/power/dist; echo dist > /sys/power/state    
或者
echo shutdown > /sys/power/disk;echo dist > /sys/power/state
systemctl hibernate
休眠

systemctl hybrid-sleep
混合休眠模式(同时休眠到硬盘并待机)

关机命令不是每个登录用户在任何情况下都可以执行的,一般只有管理员才可以关机。

2. systemctl命令实例

2.1 systemctl的基本用法

  • systemctl——列出所有已加载的单元及其状态(单元是任务/服务的术语)。

  • systemctl list-units——列出所有单元。

  • systemctl start [NAME...]——启动(激活)一个或多个单元。

  • systemctl stop [NAME...]——停止(停用)一个或多个单元。

  • systemctl disable [NAME...]——禁用一个或多个单元文件。

  • systemctl list-unit-files——显示所有已安装的单元文件及其状态。

  • systemctl --failed——显示启动过程中哪些单元出现故障。

  • systemctl --type=xxx——类型过滤器;类型可能是:服务,挂载点,设备,套接字和启动目标。

  • systemctl enable debug-shell.service——启动TTY 9上的shell,用于调试。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。