systemctl 状态显示供应商预设:已禁用

systemctl 状态显示供应商预设:已禁用

有人可以澄清“供应商预设:禁用”的含义吗?在 RHEL7 中启用软件包后,此选项可见。

答案1

如果您看到供应商预设:已禁用,则意味着首次安装该服务时,它将在启动时被禁用,并且必须手动启动。如果您希望服务在启动时自动启动,只需使用 更改其启动设置systemctl enable <service>,例如:systemctl enable httpd

详细的解释可以参见RHEL systemctl 文档或者systemctl 手册页本身

● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2018-09-10 09:29:16 MDT; 1h 3min ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 6917 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
 Main PID: 1261 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─1261 /usr/sbin/httpd -DFOREGROUND
           ├─6936 /usr/sbin/httpd -DFOREGROUND
           ├─6937 /usr/sbin/httpd -DFOREGROUND
           ├─6938 /usr/sbin/httpd -DFOREGROUND
           ├─6939 /usr/sbin/httpd -DFOREGROUND
           └─6940 /usr/sbin/httpd -DFOREGROUND

Sep 10 09:28:51 localhost systemd[1]: Starting The Apache HTTP Server...
Sep 10 09:29:16 localhost systemd[1]: Started The Apache HTTP Server.
Sep 10 10:21:02 localhost systemd[1]: Reloaded The Apache HTTP Server.

答案2

取自系统人页:

(...) 如果单元文件没有供应商提供的版本(即仅在 /etc/systemd/system 或 /run/systemd/system 下定义,但不在 /usr 下存储的单元文件中定义),则它是没有删除。此外,如果一个单位被屏蔽,它也会被取消屏蔽。

如果供应商使用 SystemD,建议供应商配置 SystemD 文件的安装,以便/usr在用户想要修改文件时它将充当默认值。

供应商启用的 systemd 文件的示例:

● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu YYYY-MM-DD HH:mm:ss TZ; 1h 0min ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 12345 (sshd)
   CGroup: /system.slice/sshd.service
           └─12345 /usr/sbin/sshd -D

MMM DD HH:mm:ss XXXXXX systemd[1]: Starting OpenSSH server daemon...
MMM DD HH:mm:ss XXXXXX systemd[1]: Started OpenSSH server daemon.

相关内容