赞
踩
CentOS 5使用SysV init;CentOS 6使用Upstart,CentOS 7使用Systemd管理守护进程。centos7采用 systemd管理,服务独立的运行在内存中,服务响应速度快,但占用更多内存。独立服务的服务启动脚本都在目录 /usr/lib/systemd/system里。Systend的新特性:
systemctl可用于内省和控制“systemd”系统和服务管理器的状态。centos7.x系统环境下我们经常使用此命令启停服务,实际上此命令除了其他独立服务还有很多其他用途。
[root@s153 system]# systemctl --help
systemctl [OPTIONS…] {COMMAND} …
接下来的操作实例以管理xinetd服务为例。
[root@s153 system]# systemctl start xinetd
[root@s153 system]# systemctl status xinetd
● xinetd.service - Xinetd A Powerful Replacement For Inetd
Loaded: loaded (/usr/lib/systemd/system/xinetd.service; enabled; vendor preset: enabled)
Active: active (running) since 三 2022-07-20 10:29:26 CST; 1min 53s ago
Process: 15831 ExecStart=/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid $EXTRAOPTIONS (code=exited, status=0/SUCCESS)
Main PID: 15832 (xinetd)
CGroup: /system.slice/xinetd.service
└─15832 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid
[root@s153 system]# systemctl stop xinetd
[root@s153 system]# systemctl is-active xinetd
inactive
[root@s153 system]# systemctl start xinetd
[root@s153 system]# systemctl is-active xinetd
active
reload是在不重启服务的情况下重新加载配置文件。
[root@s153 system]# systemctl reload xinetd
restart命令实际上是先stop,然后start。
[root@s153 system]# systemctl restart xinetd
[root@s153 system]# systemctl list-unit-files
UNIT FILE STATE
proc-sys-fs-binfmt_misc.automount static
dev-hugepages.mount static
…
[root@s153 system]# systemctl list-units
UNIT LOAD ACTIVE SUB DESCRIPTION
proc-sys-fs-binfmt_misc.automount loaded active waiting Arbitrary Executable File Formats File System Automount Point
sys-devices-pci0000:00-0000:00:01.1-ata2-host1-target1:0:0-1:0:0:0-block-sr0.device loaded active plugged QEMU_DVD-ROM CentOS_7_x86_64
sys-devices-pci0000:00-0000:00:05.0-virtio1-host2-target2:0:0-2:0:0:0-block-sda-sda1.device loaded active plugged QEMU_HARDDISK 1
systemctl可用管理单元分很多种,日常工作中我们仅仅用于管理服务,unit的常见类型:
服务被注销后该服务就无法通过systemctl进行启停管理。
[root@s153 system]# systemctl mask firewalld
Created symlink from /etc/systemd/system/firewalld.service to /dev/null.
[root@s153 system]# systemctl start firewalld
Failed to start firewalld.service: Unit is masked.
[root@s153 system]# systemctl unmask firewalld
Removed symlink /etc/systemd/system/firewalld.service.
[root@s153 system]# systemctl start firewalld
[root@s153 system]# systemctl enable xinetd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/xinetd.service to /usr/lib/systemd/system/xinetd.service.
[root@s153 system]# systemctl disable xinetd.service
Removed symlink /etc/systemd/system/multi-user.target.wants/xinetd.service.
[root@s153 system]# systemctl list-machines
NAME STATE FAILED JOBS
s153 (host) running 0 0
1 machines listed.
[root@s153 system]# systemctl show-environment
LANG=zh_CN.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
如果手动修改了unit文件,可以使用此命令重新加载。
[root@s153 system]# systemctl daemon-reload
[root@s153 system]# systemctl snapshot wuhs
wuhs.snapshot
[root@s153 system]# systemctl delete wuhs
[root@s153 system]# systemctl is-enabled xinetd.service
enabled
[root@s153 system]# systemctl kill xinetd
[root@s153 system]# systemctl is-failed xinetd
inactive
[root@s153 system]# systemctl rescue
Broadcast message from root@s153 on pts/1 (三 2022-07-20 13:08:30 CST):
The system is going down to rescue mode NOW!
#执行完命令后系统就进入了救援模式
#救援模式下切换到默认模式
[root@s153 ~]# systemctl default
[root@s153 ~]# systemctl poweroff
[root@s153 ~]# systemctl reboot
suspend暂停模式,类似window环境的睡眠模式,会将系统的状态数据保存到内存中,然后关闭掉大部分的系统硬件,当然,并没有实际关机。当用户按下唤醒机器的按钮,系统数据会重内存中回复,然后重新驱动被大部分关闭的硬件,就开始正常运作!唤醒的速度较快。
[root@s153 ~]# systemctl suspend
[root@s153 boot]# systemctl get-default
multi-user.target
[root@s153 system]# systemctl set-default graphical.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.
用法:systemctl [OPTIONS…] {COMMAND} …
参数 | 参数说明 |
---|---|
start | 立刻启动后面接的unit |
stop | 立刻关闭后面接的unit |
restart | 立刻关闭后启动后面接的unit,亦即执行stop再start的意思 |
reload | 不关闭后面接的unit的情况下,重载配置文件,让设定生效 |
enable | 设定下次开机时,后面接的unit会被启动 |
disable | 设定下次开机时,后面接的unit 不会被启动 |
status | 目前后面接的这个unit 的状态,会列出是否正在执行、是否开机启动等信息。 |
is-active | 目前有没有正在运行中 |
is-enable | 开机时有没有预设要启用这个unit |
kill | 不要被kill这个名字吓着了,它其实是向运行unit的进程发送信号 |
show | 列出unit的配置。 |
mask | 注销unit,注销后你就无法启动这个unit了 |
unmask | 取消对unit的注销 |
list-units | 依据unit列出目前有启动的unit。若加上–all才会列出没启动的。(等价于无参数) |
list-unit-files | 列出所有以安装unit以及他们的开机启动状态(enabled、disabled、static、mask)。 |
–type=TYPE | 就是unit type,主要有service,socket,target等 |
get-default | 取得目前的 target |
set-default | 设定后面接的 target 成为默认的操作模式 |
isolate | 切换到后面接的模式 |
文件通常由三部分组成:
[root@s153 system]# cat chronyd.service
[Unit]
Description=NTP client/server
Documentation=man:chronyd(8) man:chrony.conf(5)
After=ntpdate.service sntp.service ntpd.service
Conflicts=ntpd.service systemd-timesyncd.service
ConditionCapability=CAP_SYS_TIME
[Service]
Type=forking
PIDFile=/var/run/chronyd.pid
EnvironmentFile=-/etc/sysconfig/chronyd
ExecStart=/usr/sbin/chronyd $OPTIONS
ExecStartPost=/usr/libexec/chrony-helper update-daemon
PrivateTmp=yes
ProtectHome=yes
ProtectSystem=full
[Install]
WantedBy=multi-user.target
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。