经常用到的高频命令小结
- 所有服务 unit 放在这里
ll /usr/lib/systemd/system
- 默认启动级别
- [root@n1 ~]# ll /etc/systemd/system/default.target
- lrwxrwxrwx 1 root root 41 Mar 4 09:02 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target
- 开机启动的服务
ll /etc/systemd/system/multi-user.target.wants/
- 哪些服务开机会启动
- [root@n1 ~]# systemctl list-unit-files --type service |grep enable
- autovt@.service enabled
- crond.service enabled
- docker.service enabled
- getty@.service enabled
- ntpdate.service enabled
- rsyslog.service enabled
- sshd.service enabled
- sysstat.service enabled
- 目前哪些服务处于 active 状态
- [root@n1 ~]# systemctl list-units --type service |grep active
- crond.service loaded active running Command Scheduler
- dbus.service loaded active running D-Bus System Message Bus
- docker.service loaded active running Docker Application Container Engine
- getty@tty1.service loaded active running Getty on tty1
- 查看某个服务是否开机自启
systemctl is-enabled httpd.service 或
systemctl status httpd.service
systemd 有很多 unit, 其中 service.unit 是管理系统服务的.
unit 的类型
/usr/lib/systemd/system
查看管理系统服务的相关的, 即 .service 后缀的
- [root@n1 system]# ls /usr/lib/systemd/system/*.service|more
- /usr/lib/systemd/system/arp-ethers.service
- /usr/lib/systemd/system/auditd.service
- /usr/lib/systemd/system/autovt@.service
- /usr/lib/systemd/system/blk-availability.service
- /usr/lib/systemd/system/brandbot.service
- ...
特点:
不需要可执行权限, 其内容也不能执行
仅是 systemd 的调用的配置文件
unit 类型 | 作用 |
---|---|
Service unit | 管理系统服务, 我们暂且只关心这个 |
Target unit | 多个 Unit 构成的一个组 |
Device Unit | 硬件设备 |
Mount Unit | 文件系统的挂载点 |
Automount Unit | 自动挂载点 |
Path Unit | 文件或路径 |
Scope Unit | 不是由 Systemd 启动的外部进程 |
Slice Unit | 进程组 |
Snapshot Unit | Systemd 快照,可以切回某个快照 |
Socket Unit | 进程间通信的 socket |
Swap Unit | swap 文件 |
Timer Unit | 定时器 |
centos6 chkconfig VS 使用 systemd 的 service unit 治理 centos7 服务
任务 | 旧指令 | 新指令 |
---|---|---|
哪些服务正在跑? | chkconfig --list\grep 3:on | systemctl list-units --type=service |
哪些服务开机会自启动? | chkconfig --list | systemctl list-unit-files --type=service |
使 httpd 开机自启动 | chkconfig --level 3 httpd on | systemctl enable httpd.service |
使 httd 开机不自启动 | chkconfig --level 3 httpd off | systemctl disable httpd.service |
查看 httpd 现在是否启动着 | service httpd status | systemctl status httpd.service (服务详细信息) |
启动某服务 | /etc/init.d/httpd start | systemctl start httpd.service |
停止某服务 | /etc/init.d/httpd stop | systemctl stop httpd.service |
重启某服务 | /etc/init.d/httpd restart | systemctl restart httpd.service |
所有已装载的级别 (而非当前级别) | runlevel | systemctl list-units --type target |
查看默认级别是啥 | cat /etc/inittab | systemctl get-default |
设置默认级别 | init 3 | systemctl set-default multi-user.target |
查看服务状态 | /etc/init.d/http status | systemctl is-enabled httpd.service/systemctl status httpd.service |
默认启动第一个进程 | init | systemd |
ls /usr/lib/systemd/system/*.service|more 下以 service 开头的文件, 都是和系统服务有关的, 其下还有别的后缀的服务. 是别的 unit 的配置文件.
serivice unit 配置
target unit: 的含义是服务组, 表示一组服务
将很多服务放在一坨, 开启启动时候加载这个文件.
启动级别
- /usr/lib/systemd/system
- /etc/systemd/system
- runlevel0.target -> poweroff.target
- runlevel2.target -> multi-user.target
- runlevel3.target -> multi-user.target
- runlevel4.target -> multi-user.target
- runlevel5.target -> graphical.target
- runlevel6.target -> reboot.target
注意: centos7 里, 运行级别 234 没区别.
查看在运行的服务
我们看 ACTIVE 就 ok 了, SUB 这一列可以不用理会
- [root@n1 system]# systemctl list-units --type=service
- UNIT LOAD ACTIVE SUB DESCRIPTION
- crond.service loaded active running Command Scheduler
- dbus.service loaded active running D-Bus System Message Bus
- docker.service loaded active running Docker Application Container Engine
- getty@tty1.service loaded active running Getty on tty1
- httpd.service loaded active running The Apache HTTP Server
查看开机是否会启动
- [root@n1 system]# systemctl list-unit-files --type=service
- UNIT FILE STATE
- arp-ethers.service disabled
- auditd.service disabled
- autovt@.service enabled #开机会启动
- blk-availability.service disabled# 开机不会启动
- brandbot.service static #这类不用管
- conntrackd.service disabled
systemd 管理服务入门
设置开机自动启动细节
- [root@n1 ~]# yum install psmisc -y
- [root@n1 ~]# pstree
- systemdagetty
- crond
- dbus-daemon
- dockerddocker-containedocker-containemysqld20*[{mysqld}]
- 8*[{docker-containe}]
- 9*[{docker-containe}]
- docker-proxy3*[{docker-proxy}]
- 11*[{dockerd}]
- httpd8*[httpd]
- lvmetad
- polkitd5*[{polkitd}]
- rsyslogd2*[{rsyslogd}]
- sshdsshdbashpstree
- systemd-journal
- systemd-logind
- systemd-udevd
- [root@n1 system]# systemctl enable httpd
- Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
相当于执行
ln -s /usr/lib/systemd/system/httpd.service /etc/systemd/system/multi-user.target.wants/httpd.service
disable 相当于删除
- [root@n1 system]# systemctl disable httpd
- Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service.
- [root@n1 system]# ll /etc/systemd/system/multi-user.target.wants
- total 0
- lrwxrwxrwx. 1 root root 37 Dec 27 04:44 crond.service -> /usr/lib/systemd/system/crond.service
- lrwxrwxrwx 1 root root 38 Dec 26 21:05 docker.service -> /usr/lib/systemd/system/docker.service
- lrwxrwxrwx 1 root root 37 Mar 4 03:39 httpd.service -> /usr/lib/systemd/system/httpd.service
- lrwxrwxrwx. 1 root root 39 Dec 26 21:00 ntpdate.service -> /usr/lib/systemd/system/ntpdate.service
- lrwxrwxrwx. 1 root root 40 Dec 27 04:44 remote-fs.target -> /usr/lib/systemd/system/remote-fs.target
- lrwxrwxrwx. 1 root root 39 Dec 27 04:44 rsyslog.service -> /usr/lib/systemd/system/rsyslog.service
- lrwxrwxrwx. 1 root root 36 Dec 27 04:44 sshd.service -> /usr/lib/systemd/system/sshd.service
- lrwxrwxrwx. 1 root root 39 Dec 27 05:00 sysstat.service -> /usr/lib/systemd/system/sysstat.service
设置启动级别的命令
- 设置默认启动级别
- [root@n1 ~]# 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.
- 查看默认的启动级别
- [root@n1 ~]# systemctl get-default
- graphical.target
- 手动修改启动级别 (先将原来的 rm 了)
- [root@n1 ~]# ln -sv /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target
- ln: failed to create symbolic link /etc/systemd/system/default.target: File exists
- [root@n1 ~]# rm -rf /etc/systemd/system/default.target
- [root@n1 ~]# ln -sv /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target
- /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target
- [root@n1 ~]# systemctl get-default
- multi-user.target
- 查看服务状态
- [root@n1 ~]# systemctl is-enabled httpd.service
- disabled
来源: http://www.bubuko.com/infodetail-2514662.html