qBittorrent-nox 直到上周都运行得很好,但从那以后它总是在我的 Ubuntu 14.04 上崩溃。理论上它是日志记录,但日志文件仅包含这些行:
******** 信息 ******** qBittorrent vezérléséhez, nyisd meg ezt a címet: 本地主机:8080 Web UI 管理员 不需要: admin Web UI 管理员 jelszó még az alapértelmezett: adminadmin Ez biztonsági kockázatot jelent。 Kérlek változtass jelszót 程序是最好的。 ******** 信息 ******** qBittorrent vezérléséhez, nyisd meg ezt a címet: 本地主机:8080 Web UI 管理员 felhasználó neve: weylyn1 ******** 信息 ******** qBittorrent vezérléséhez, nyisd meg ezt a címet: 本地主机:8080 Web UI 管理员 felhasználó neve: weylyn1 ******** 信息 ******** qBittorrent vezérléséhez, nyisd meg ezt a címet: 本地主机:8080 Web UI 管理员 felhasználó neve: weylyn1。所以我想编写一个脚本,每 5 分钟检查一次 qbittorrent-nox 是否正在运行,如果没有运行,则以
# service qbittorrent-nox start
root 身份启动它。但是,如果它正在运行,请再等待 5 分钟并再次检查。我想使用此解决方法,直到找到崩溃的解决方案。
答案1
如何测试守护进程是否正在运行?这取决于。某些守护进程有一个进程 ID 为 的文件/var/run/foo.pid
。一个例子是/var/run/crond.pid
。
$ cat /var/run/crond.pid
432
如果进程正在运行,它有一个目录/proc
:
$ ls /proc/$(cat /var/run/crond.pid)
因此,如果 /proc 中的目录不存在,我们可以重新启动。如果 qBittorrent 有这个 pid 文件,你可以这样做:
# cat <<EOF >/etc/cron.d/restart-qbittorrent-nox
*/5 * * * * /bin/test -e /proc/$(cat /var/run/qbittorrent-nox.pid)/cmdline || service qbittorrent-nox start
EOF
如果您没有任何文件,则/var/run
必须使用它ps ax | grep qBittorrent
来查找该进程。
但最好的解决方案是找出进程崩溃的原因......