[命令] Linux 命令 systemctl (程序单元启动和管理)

内容一:受 systemctl 管理的单元列表

1.1 受 systemctl 管理的所有单元列表

1.1.1 列出所有 systemctl 可用单元以及是否开机自启
# systemctl list-unit-files

(补充:所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的)

1.1.2 列出所有 systemctl 正在运行的单元
# systemctl list-units

(补充:所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的)

1.1.3 列出所有 systemctl 运行失败的单元
# systemctl --failed

(补充:所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的)

1.2 受 systemctl 管理的目标单元列表

1.2.1 列出所有受 systemctl 管理的目标单元
# systemctl list-units --all --type target


补充:
1) 所有受 systemctl 目标管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.2.2 列出所有正在运行的受 SYSTEMCTL 管理的目标单元
# systemctl list-units --typer=target --state=running


补充:
1) 所有受 systemctl 目标管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.2.3 列出所有开机自启的受 SYSTEMCTL 管理的目标单元
# systemctl list-units --all --type=target --state=active


补充:
1) 所有受 systemctl 目标管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.2.4 列出所有开机不自启的受 SYSTEMCTL 管理的目标单元
# systemctl list-units --all --type=target --state=inactive


补充:
1) 所有受 systemctl 目标管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.3 受 systemctl 管理的目标单元列表

1.3.1 列出所有受 systemctl 管理的服务单元
# systemctl list-units --all --type service


补充:
1) 所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.3.2 列出所有正在运行的受 systemctl 管理的服务单元
# systemctl list-units --typer=service --state=running


补充:
1) 所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.3.3 列出所有开机自启的受 systemctl 管理的服务单元
# systemctl list-units --all --type=service --state=active


补充:
1) 所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

1.3.4 列出所有开机不自启的受 systemctl 管理的服务单元
# systemctl list-units --all --type=service --state=inactive


补充:
1) 所有受 systemctl 管理单元的文件都是放在 /usr/lib/systemd/system 目录下的
2) service 是一个个单独的服务
3) target 是包含很多个单独服务(service)的一组服务

内容二:单元的状态显示

2.1 单元的状态显示 (按标准格式显示)

# systemctl status <unit>


补充:
1) systemctl 的主要状态项有:
Loaded 单元是否已被内存加载
Active 单元是否已成功运行
Main PID 单元主进程的 PID 号
Status 单元的其他相关信息

2) Active 状态项的参数有:
loaded 单元文件已经处理
active(running) 单元正在运行
active(exited)已完成单元的一次性配置
active(waiting)正在等待启动
inactive 没有启动
enabled 将在系统启动时自动启动
disabled 不会在系统启动时自动启动
static 可以被其他单元启动

3) 单元既可以是服务单元也可以是目标单元

2.2 单元的状态显示 (显示所有内容)

# systemctl status -l <unit>


补充:
1) systemctl 的主要状态项有:
Loaded 单元是否已被内存加载
Active 单元是否已成功运行
Main PID 单元主进程的 PID 号
Status 单元的其他相关信息

2) Active 状态项的参数有:
loaded 单元文件已经处理
active(running) 单元正在运行
active(exited)已完成单元的一次性配置
active(waiting)正在等待启动
inactive 没有启动
enabled 将在系统启动时自动启动
disabled 不会在系统启动时自动启动
static 可以被其他单元启动

3) 单元既可以是服务单元也可以是目标单元

内容三:单元的启动管理

3.1 启动某 1 个单元

# systemctl start <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

3.2 停止某 1 个单元

# systemctl stop <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

3.3 重启某 1 个单元

# systemctl restart <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

3.3 显示某 1 个单元是否正在运行

3.3.1 使用 is-active 参数显示某个单元是否正在运行
# systemctl is-active <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

3.3.2 使用 list-unit-files 参数显示某个单元是否正在运行
3.3.2.1 使用 list-unit-files 参数显示某个单元是否正在运行的格式
3.3.2.1.1 显示某个 systemctl 的服务在 systemctl 中的文件名的格式
# ll /usr/lib/systemd/system/<unit>
3.3.2.1.2 显示某个 systemctl 文件名的状态的格式
# systemctl list-unit-files | grep ^<file name>
3.3.2.2 使用 list-unit-files 参数显示某个单元是否正在运行的案例
3.3.2.2.1 显示某个 systemctl 的服务在 systemctl 中的文件名的案例
# ll /usr/lib/systemd/system/ctrl-alt-del.target
lrwxrwxrwx 1 root root 13 May 19 06:56 /usr/lib/systemd/system/ctrl-alt-del.target -> reboot.target


补充:
1) 这里以显示 systemctl 的 ctrl-alt-del.target 服务在 systemctl 中的文件名为例
2) 从这里的输出结果可以看出 systemctl 的 ctrl-alt-del.target 服务在 systemctl 中的文件名为 reboot.target

3.3.2.2.2 显示某个 systemctl 文件名的状态的案例
# systemctl list-unit-files | grep ^reboot.target
reboot.target                                                             disabled        disabled

(补充:这里以显示 systemctl 的 reboot.target 文件名为例)

3.4 启动并将某 1 个单元设置为开机自启

# systemctl enable --now <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

3.5 停止并将某 1 个单元取消开机自启

# systemctl disable --now <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

内容四:单元的开机自启管理

4.1 让某一个单元开机自启

# systemctl enable <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

4.2 取消某一个单元的开机自启

# systemctl disable <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

4.3 显示某一个单元是否是开机自启

# systemctl is-enabled <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

内容五:单元的锁定管理

5.1 锁定某一个单元(禁止其启动)

# systemctl mask <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

5.2 取消某一个单元的锁定(让它可以启动)

# systemctl umask <unit>


补充:
1) service 是一个个单独的服务
2) target 是包含很多个单独服务(service)的一组服务
3) 单元既可以是服务单元(service)也可以是目标单元(target)

内容六:重新加载某 systemctl 的配置文件

# systemctl daemon-reload

[内容] CentOS Linux & RHEL YUM 的设置 (网络代理)

内容一:设置所有 YUM 软件源网络代理的方法

# vim /etc/yum.conf

添加以下内容:

......
proxy=http://<user>:<password>@<IP address>:<port>/


注意:
1) 如果没有用户和密码就写成 proxy=http://<IP address>:<port>/
2) 如果密码中也有一个 “@” 符号,则需要把 “@” 符号转义一下,转义成 %40

或者:

# vim /etc/yum.conf

添加以下内容:

......
proxy=http://<IP address>:<port>
proxy_username=<user>
proxy_password=<password>

(注意:如果没有用户和密码就不写后面两行)

或者:

# vim /etc/rhsm/rhsm.conf

添加以下内容:

......
proxy=<IP address>
proxy_port=<port>
proxy_username=<user>
proxy_password=<password>

(注意:如果没有用户和密码就不写后面两行)

内容二:单独设置某个 YUM 软件源网络代理

# vim /etc/yum.repos.d/<yum source file name prefix>.repo

添加以下内容:

......
proxy=http://<user>:<password>@<IP address>:<port>/
......


注意:
1) 如果没有用户和密码就写成 proxy=http://<IP address>:<port>/
2) 如果密码中也有一个 “@” 符号,则需要把 “@” 符号转义一下,转义成 %40

或者:

# vim /etc/yum.repos.d/<yum source file name prefix>.repo

添加以下内容:

......
proxy=http://<IP address>:<port>
proxy_username=<user>
proxy_password=<password>

(注意:如果没有用户和密码就不写后面两行)