在本文中,我们将学习如何使用“ systemctl”命令,“ systemctl”是新版本的Linux发行版中可用的新命令,该版本用于控制系统和服务,我们将探索一些可能的方式来使用Linux中的'systemctl'命令。
我们可以使用此命令来验证服务的状态。以下是检查服务的命令。
# systemctl status httpd httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2016-06-02 06:48:58 EDT; 27s ago Docs: man:httpd(8) man:apachectl(8) Main PID: 10011 (httpd) Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /system.slice/httpd.service ├─10011 /usr/sbin/httpd -DFOREGROUND ├─10012 /usr/sbin/httpd -DFOREGROUND ├─10013 /usr/sbin/httpd -DFOREGROUND ├─10014 /usr/sbin/httpd -DFOREGROUND ├─10015 /usr/sbin/httpd -DFOREGROUND └─10016 /usr/sbin/httpd -DFOREGROUND Jun 02 06:48:57 centos-linux-1.shared systemd[1]: Starting The Apache HTTP Server... Jun 02 06:48:58 centos-linux-1.shared systemd[1]: Started The Apache HTTP Server.
# systemctl show httpd Type=notify Restart=no NotifyAccess=main RestartUSec=100ms TimeoutStartUSec=1min 30s TimeoutStopUSec=1min 30s WatchdogUSec=0 WatchdogTimestamp=Thu 2016-06-02 06:48:58 EDT WatchdogTimestampMonotonic=2588490928 StartLimitInterval=10000000StartLimitBurst=5 StartLimitAction=none …. . . . . AssertResult=yes ConditionTimestamp=Thu 2016-06-02 06:48:57 EDT ConditionTimestampMonotonic=2587709137 AssertTimestamp=Thu 2016-06-02 06:48:57 ED AssertTimestampMonotonic=2587709138 Transient=no This will display all the status information about http (web servers services) Verifying the Services active or enabled Here we will verify that the servers are active and they are enabled at system startup To verify the services active or not we needed to run the below command # systemctl is-active httpd.service active
# systemctl enable httpd Created symlink from /etc/systemd/system/multi-use.rtarget.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
# systemctl is-enabled httpd enabled
# systemctl start httpd # systemctl restart httpd
# systemctl list-dependencies httpd httpd.service ├─-.mount ├─system.slice └─basic.target ├─microcode.service ├─rhel-autorelabel-mark.service ├─rhel-autorelabel. service ├─rhel-configure.service ├─rhel-dmesg.service ├─rhel-loadmodules.service ├─paths.target ├─slices.target │ ├─-.slice │ └─system.slice… … . ..
# systemctl list-jobs No jobs running.
# systemctl list-unit files
# systemctl list-unit-files | grep httpd httpd.service enabled
# systemctl list-sockets --show-types LISTEN TYPE UNIT ACTIVATES /dev/log Datagram systemd-journald.socket systemd-j /run/dmeventd-client FIFO dm-event.socket dm-event. /run/dmeventd-server FIFO dm-event.socket dm-event. /run/lvm/lvmetad.socket Stream lvm2-lvmetad.socket lvm2-lvme /run/lvm/lvmpolld.socket Stream lvm2-lvmpolld.socket lvm2-lvmp /run/systemd/initctl/fifo FIFO systemd-initctl.socket systemd-i /run/systemd/journal/socket Datagram systemd-journald.socket systemd-j /run/systemd/journal/stdout Stream systemd-journald.socket systemd-j /run/systemd/shutdownd Datagram systemd-shutdownd.socket systemd-s /run/udev/control SequentialPacket systemd-udevd-control.socket systemd-u /var/run/dbus/system_bus_socket Stream dbus.socket dbus.serv kobject-uevent 1 Netlink systemd-udevd-kernel.socket systemd-u 12 sockets listed. Pass --all to see loaded but inactive sockets, too.
# systemctl set-default multi-user.target Removed symlink /etc/systemd/system/default.target. Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target. # systemctl get-default multi-user.target
在某些情况下,尤其是在大公司中,其中一个管理员已停止服务器,其他管理员将启动服务,为避免这种情况,我们可以屏蔽和取消屏蔽服务,如果某些服务在不取消屏蔽的情况下停止,我们将无法启动服务再次
# systemctl mask httpd Created symlink from /etc/systemd/system/httpd.service to /dev/null.
# httpd.service Loaded: masked (/dev/null) Active: active (running) since Thu 2016-06-02 07:03:27 EDT; 10min ago Main PID: 10128 (httpd) Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /system.slice/httpd.service ├─10128 /usr/sbin/httpd -DFOREGROUND ├─10129 /usr/sbin/httpd -DFOREGROUND ├─10130 /usr/sbin/httpd -DFOREGROUND ├─10131 /usr/sbin/httpd -DFOREGROUND ├─10132 /usr/sbin/httpd -DFOREGROUND └─10133 /usr/sbin/httpd -DFOREGROUND Jun 02 07:03:27 centos-linux-1.shared systemd[1]: Starting The Apache HTTP Server... Jun 02 07:03:27 centos-linux-1.shared systemd[1]: Started The Apache HTTP Server. Jun 02 07:13:47 centos-linux-1.shared systemd[1]: httpd.service: Got notification m.... Jun 02 07:13:57 centos-linux-1.shared systemd[1]: httpd.service: Got notification m.... Jun 02 07:14:07 centos-linux-1.shared systemd[1]: httpd.service: Got notification m.... Jun 02 07:14:17 centos-linux-1.shared systemd[1]: httpd.service: Got notification m.... Hint: Some lines were ellipsized, use -l to show in full.
# systemctl start httpd Failed to start httpd.service: Unit httpd.service is masked.
# systemctl unmask httpd Removed symlink /etc/systemd/system/httpd.service.
# systemctl start httpd # systemctl status httpd httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2016-06-02 07:03:27 EDT; 18min ago Docs: man:httpd(8) man:apachectl(8) Main PID: 10128 (httpd) Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /system.slice/httpd.service ├─10128 /usr/sbin/httpd -DFOREGROUND ├─10129 /usr/sbin/httpd -DFOREGROUND ├─10130 /usr/sbin/httpd -DFOREGROUND ├─10131 /usr/sbin/httpd -DFOREGROUND ├─10132 /usr/sbin/httpd -DFOREGROUND └─10133 /usr/sbin/httpd -DFOREGROUND
快照是指系统管理器的保存状态。快照仅用于保存正在运行或已停止的单元的还原。
# systemctl snapshot httpd ht.tpdsnapshot
# systemctl status httpd.snapshot httpd.snapshot Loaded: loaded Active: inactive (dead) Jun 02 07:26:31 centos-linux-1.shared systemd[1]: Created snapshot httpd.snapshot.
# systemctl delete httpd.snapshot # systemctl status httpd.snapshot httpd.snapshot Loaded: not-found (Reason: No such file or directory) Active: inactive (dead) Jun 02 07:26:31 centos-linux-1.shared systemd[1]: Created snapshot httpd.snapshot. Jun 02 07:29:05 centos-linux-1.shared systemd[1]: Removing snapshot httpd.snapshot.
在本文之后,我们现在可以控制新版本或最新版本的Linux中的服务,其中“ systemctl”是旧版本Linux中的service命令的替换。希望这对您的工作有所帮助。