如果守护进程死了,我将无法手动重新启动它:start foo导致消息“开始:作业已经在运行:foo”,并stop foo无限期挂起。
start on runlevel [2345]
stop on runlevel [016]
kill timeout 90
expect daemon
pre-start script
rm -f ${HOME}/RUNNING_PID
end script
exec start-stop-daemon \
--pidfile ${HOME}/RUNNING_PID --chuid $USER:$GROUP \
--exec ${HOME}/bin/run --start > run.log 2>&1
Run Code Online (Sandbox Code Playgroud)
没有 $USER 拥有的进程,也没有 pidfile,那么为什么 upstart 认为守护进程仍在运行,否则我如何说服它?
刚刚注意到,尽管内核定期更新,但使用的版本已经过时了:
$ uname -a
Linux test 2.6.31-302-rs #7 SMP Thu Oct 29 22:57:03 UTC 2009 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
奇怪的是,这个版本的内核甚至似乎都没有安装:
$ dpkg --list | grep linux-image
rc linux-image-2.6.32-41-generic 2.6.32-41.90 amd64 Linux kernel image for version 2.6.32 on x86/x86_64
ii linux-image-3.13.0-54-generic 3.13.0-54.91 amd64 Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii linux-image-extra-3.13.0-54-generic 3.13.0-54.91 amd64 Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii linux-image-generic 3.13.0.54.61 amd64 Generic Linux kernel image
Run Code Online (Sandbox Code Playgroud)
另外,中没有提到2.6 /boot/grub/grub.cfg,那么它来自哪里,如何让系统使用3.13内核?