强制停止 upstart 作业

强制停止 upstart 作业

我意外删除了一些 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。但是,请确保该服务没有自己的看门狗/父进程,在这种情况下,您必须终止它。

相关内容