当前位置: 首页 > Linux

使用Systemctl命令管理系统服务

时间:2023-04-06 06:32:25 Linux

Systemctl是systemd的管理系统和管理服务的工具。许多现代Linux发行版,例如Ubuntu、Debian、Fedora、LinuxMint、OpenSuSE、Redhat使用systemd作为默认的初始化系统。使用systemctl,您可以启动、停止、重新加载、重新启动服务、列出服务单元、检查服务状态、启用/禁用服务、管理运行级别和电源管理。在本文中,我将展示如何使用systemctl命令在Linux中管理systemd服务。使用systemctl命令Start/Stop/Restart/Reload当服务使用systemctl启动服务时,命令格式为:systemctlstart[service-name]。例如启动firewalld服务:[root@localhost~]#systemctlstartfirewalld与旧版Linux中的service命令相反,systemctlstart命令没有任何输出。使用Systemctl命令管理系统服务使用Systemctl命令管理系统服务要停止服务,请使用systemctlstop[service-name]。例如停止firewalld服务:[root@localhost~]#systemctlstopfirewalld使用Systemctl命令管理系统服务使用Systemctl命令管理系统服务重启一个服务,使用systemctlrestart[service-name],例如:[root@localhost~]#systemctlrestartfirewalld使用Systemctl命令管理系统服务使用Systemctl命令管理系统服务要重新加载服务的配置(例如ssh)而不重新启动它,请使用systemctlreload[service-name],例如:[root@localhost~]#systemctlreloadsshd使用Systemctl命令管理系统服务使用Systemctl命令管理系统服务systemctl检查服务状态要查看服务是否正在运行,我们可以使用systemctlstatus[service-name]来检查。[root@localhost~]#systemctlstatusfirewalld使用Systemctl命令管理系统服务使用Systemctl命令管理系统服务检查服务是否设置为开机启动要在开机时启用服务,请使用systemctlenable[service-name],例如:[root@localhost~]#systemctlenablehttpd.service创建了从/etc/systemd/system/multi-user.target.wants/httpd.service到/usr/lib/systemd/system/httpd.service的符号链接.使用Systemctl命令管理系统服务,使用Systemctl命令管理系统服务。同理,禁用时取消启动时启用服务:[root@localhost~]#systemctldisablehttpd.service使用systemctl命令管理系统服务使用systemctl命令管理系统服务可以使用is-enabled选项检查服务是否启动开机后请运行:[root@localhost~]#systemctlis-enabledhttpd.service使用Systemctl命令管理系统服务使用Systemctl命令管理系统服务输出内容enabled表示开机启动服务,disabled表示开机时不启动该服务。systemctllist-units要列出所有活动单位,请使用list-units选项。[root@localhost~]#systemctllist-units使用Systemctl命令管理系统服务使用Systemctl命令管理系统服务要列出所有活动的服务,请运行:[root@localhost~]#systemctllist-units-tservice使用Systemctl命令管理系统服务使用systemctl命令管理系统服务使用systemctl重启和关闭系统与poweroff和shutdown命令一样,systemctl命令可以关闭系统、重启或进入休眠状态。关机:[root@localhost~]#systemctlpoweroff重启:[root@localhost~]#systemctlreboot系统休眠:[root@localhost~]#systemctlhibernate使用systemclt管理远程系统一般来说,以上所有的systemctl命令都可以使用systemctl命令本身管理远程主机。这将使用ssh与远程主机通信。如下:[root@localhost~]#systemctlstatushttpd-Hroot@192.168.0.12使用Systemctl命令管理系统服务使用Systemctl命令管理系统服务-H选项,指定远程主机的用户名和密码。管理目标Systemd有目标的概念,其目的类似于sysVinit系统中的运行级别。sysVinit中的运行级别主要是数字(0,1,2,-6)。以下是sysVinit中的runlevels及其在systemd中对应的target:0runlevel0.target,poweroff.target1runlevel1.target,rescue.target2,3,4runlevel2.target,runlevel3.target,runlevel4.target,multi-user.target5runlevel5.target,graphical.target6runlevel6.target,reboot.target如果想查看当前的运行级别,可以使用如下命令:[root@localhost~]#systemctlget-defaultmulti-user.target使用SystemctlcommandtoManagesystemservices使用Systemctl命令管理系统服务设置默认运行级别为图形化,命令如下:[root@localhost~]#systemctlset-defaultgraphical.targetRemovedsymlink/etc/systemd/system/default.target.Created从/etc/systemd/system/default.target到/usr/lib/systemd/system/graphical.target的符号链接。使用Systemctl命令管理系统服务使用Systemctl命令管理系统服务要列出所有活动的目标,可以使用以下命令:[root@localhost~]#systemctllist-units-ttarget使用Systemctl命令管理系统服务使用Systemctl管理系统服务的命令systemd工具的其他命令journalctl日志收集systemd有自己的日志系统,叫做journald。它取代了sysVinit中的syslogd。[root@localhost~]#journalctl使用Systemctl命令管理系统服务使用Systemctl命令管理系统服务要查看所有开机信息,运行命令journalctl-b[root@localhost~]#journalctl-b以下命令跟踪系统日志实时(类似于tail-f):[root@localhost~]#journalctl-f使用Systemctl命令管理系统服务使用Systemctl命令管理系统服务查询系统启动过程的持续时间[root@localhost~]#systemd-analyzeStartupfinishedin497ms(kernel)+1.836s(initrd)+6.567s(userspace)=8.901sUseSystemctlcommandstomanagesystemservicesUseSystemctlcommandstomanagesystemservices最后,系统启动时间显示为8.901秒。查看服务的启动时间:[root@localhost~]#systemd-analyzeblame使用Systemctl命令管理系统服务使用Systemctl命令管理系统服务hostnamectl命令查看主机名:[root@localhost~]#hostnamectl使用Systemctl命令管理系统服务使用Systemctl命令管理系统服务总结在本文中,您学习了systemctl命令来管理Linux发行版中的系统服务。