我意外删除了一些 upstart 作业配置(在 中/etc/init/
)。不幸的是,我没有设置任何重生限制,这些作业现在无法停止。
我在网上搜索过,但没有找到任何答案,希望在这里能有更好的运气。问候 R
PS:我使用的是 ubuntu 12.04
答案1
假设您知道删除了哪些文件,您可以:
- 从备份中恢复它们(您有备份,对吗?)
如果您没有备份,您可以使用以下任一方式找到提供该文件的包:
# dpkg-query -S /path/to/file
(如果您仍然安装了该软件包;您应该这样做,因为您刚刚从中删除了一个文件)
# apt-file /path/to/file
(如果您没有再安装该软件包,无论出于何种原因)
您还可以使用Ubuntu 软件包搜索网站。
之后,当你知道删除的文件来自哪个包时,你就可以
# aptitude reinstall package
并且该文件将再次出现,您将能够正常停止您的进程。
答案2
我尝试重现此问题,只要服务正在运行,upstart 就会知道如何使用 停止它stop $svcname
。您可以使用 查看 upstart 是否知道它initctl list | grep $svcname
。如果 upstart 没有列出它,那么您应该能够使用 终止它kill
。但是,请确保该服务没有自己的看门狗/父进程,在这种情况下,您必须终止它。