抱歉,这是一个菜鸟问题,我搜索了一下并没有找到解释。
我无法理解 systemctl status 的不同之处active (exited)
。active (running)
以下是我的服务器上的 2 个示例:
$systemctl status pihole-FTL.service
● pihole-FTL.service - LSB: pihole-FTL daemon
Loaded: loaded (/etc/init.d/pihole-FTL; generated)
Active: active (exited) since Thu 2020-12-31 12:21:34 -03; 1h 13min ago
Docs: man:systemd-sysv-generator(8)
Tasks: 0 (limit: 38279)
Memory: 0B
CGroup: /system.slice/pihole-FTL.service
dez 31 12:21:34 server systemd[1]: Starting LSB: pihole-FTL daemon...
dez 31 12:21:34 server pihole-FTL[81286]: Not running
dez 31 12:21:34 server su[81306]: (to pihole) root on none
dez 31 12:21:34 server su[81306]: pam_unix(su:session): session opened for user pihole by (uid=0)
dez 31 12:21:34 server su[81306]: pam_unix(su:session): session closed for user pihole
dez 31 12:21:34 server systemd[1]: Started LSB: pihole-FTL daemon.
$systemctl status apache2.service
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-12-31 11:55:36 -03; 1h 40min ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 35401 (apache2)
Tasks: 11 (limit: 38279)
Memory: 36.7M
CGroup: /system.slice/apache2.service
├─ 35401 /usr/sbin/apache2 -k start
├─ 35402 /usr/sbin/apache2 -k start
├─ 35404 /usr/sbin/apache2 -k start
├─ 35405 /usr/sbin/apache2 -k start
├─ 35406 /usr/sbin/apache2 -k start
├─ 38219 /usr/sbin/apache2 -k start
├─ 38221 /usr/sbin/apache2 -k start
├─ 82281 /usr/sbin/apache2 -k start
├─ 82286 /usr/sbin/apache2 -k start
├─148242 /usr/sbin/apache2 -k start
└─188358 /usr/sbin/apache2 -k start
dez 31 11:55:36 server systemd[1]: Started The Apache HTTP Server.
dez 31 11:56:57 server sudo[38106]: www-data : TTY=unknown ; PWD=/stuff/www/html/admin ; USER=root ; COMMAND=/usr/local/bin/pihole status web
dez 31 11:56:57 server sudo[38106]: pam_unix(sudo:session): session opened for user root by (uid=0)
dez 31 11:56:57 server sudo[38106]: pam_unix(sudo:session): session closed for user root
dez 31 11:57:00 server sudo[38216]: www-data : TTY=unknown ; PWD=/stuff/www/html/admin ; USER=root ; COMMAND=/usr/local/bin/pihole status web
dez 31 11:57:00 server sudo[38216]: pam_unix(sudo:session): session opened for user root by (uid=0)
dez 31 11:57:00 server sudo[38216]: pam_unix(sudo:session): session closed for user root
dez 31 12:22:01 server sudo[82205]: www-data : TTY=unknown ; PWD=/stuff/www/html/admin ; USER=root ; COMMAND=/usr/local/bin/pihole status web
dez 31 12:22:01 server sudo[82205]: pam_unix(sudo:session): session opened for user root by (uid=0)
我测试过,两个守护进程都运行正常,那么为什么 pihole 退出了呢?
答案1
pi-hole 作业不是 systemd 监控的服务。
它只是一个启动守护进程的脚本。这是非常 2005 年的做法(systemd 在 2010 年之前并不存在)
- 线索如下:pi-hole 作业位于
/etc/init.d/
,这是放置 sysvinit 脚本的标准位置。它不位于/lib/systemd/system/
或/etc/systemd/system/
,而后者是 systemd .service 文件的标准位置。
Systemd 不知道脚本正在启动守护进程。它只知道脚本已成功退出。
您启动 pi-hole 的方法没有任何问题。旧方法和新方法可以和平共处。这仅仅意味着您没有使用 systemd 功能(例如监控和重生)。或者,您最喜欢的搜索引擎会很乐意向您展示基于 systemd .service 的启动 pi-hole 的方法。