1

I accidentally deleted some upstart job conf (in /etc/init/). Unfortunately I didn't set any respawn limit, and those jobs are now unstoppable.

I searched online but didn't find any answers, hope I will have better luck here. Regards R

PS: I'm using ubuntu 12.04

0

2 Answers 2

1

Assuming you know what files you have deleted, you can:

  • restore them from a backup (you have backups, right?)
  • if you don't have a backup, you can locate the package that provides the file using either:

    # dpkg-query -S /path/to/file
    

    (if you still have the package installed; you should, you just deleted a file from it)

    # apt-file /path/to/file
    

    (if you don't have the packaged installed anymore, for whatever reason)

    You can also use the Ubuntu Packages Search web site.

  • Afterwards, when you know which package that file you deleted came from, you can just

    # aptitude reinstall package
    

    and the file will be there again and you will be able to stop your processes normaly.

6
  • Thx for your answer but it was custom made upstart conf file.
    – rmonjo
    Apr 2, 2014 at 8:31
  • So, you don't have any other copy of it, say, in a repository somewhere?
    – dawud
    Apr 2, 2014 at 9:10
  • They are generated by a script, I generated them back, but now way to kill them: sudo stop my-job answers with my-job, start/running, process 32061
    – rmonjo
    Apr 2, 2014 at 9:27
  • What stops you from SIGKILL/SIGTERM them?
    – dawud
    Apr 2, 2014 at 9:47
  • Well, they respawn :) But I actually figured it out. Restarting the job seems to reset to a coherent state.
    – rmonjo
    Apr 2, 2014 at 9:59
1

I've tried to reproduce, and as long as the service is running, upstart will know how to stop it with stop $svcname. You can see if upstart knows about it with initctl list | grep $svcname. If upstart doesn't list it, then you should be able to kill it with kill. Make sure the service doesn't have its own watchdog/parent process, though, in which case you would have to kill that instead.

1
  • 1
    Thx for your answer. I see my jobs in initctl list, but when I sudo stop myjob, it ends up telling me: my-job start/running, process 23213.
    – rmonjo
    Apr 2, 2014 at 8:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.