How can I run this script on startup, restart, and shutdown?

Posted by Exeleration-G on Ask Ubuntu See other posts from Ask Ubuntu or by Exeleration-G
Published on 2012-03-02T19:56:45Z Indexed on 2012/04/04 11:41 UTC
Read the original article Hit count: 336

Filed under:
|

I'm using Ubuntu 11.10.

I've written a script, that synchronises a directory in ~ with a directory on /dev/sda4, using Unison. Before, I had this script running every five minutes with no problems, using crontab. Right now, I want to execute this script at startup, restart and shutdown only.

This is what the script looks like:

#!/bin/bash
unison -perms 0 -batch "/mnt/Data/Syncfolder/" "/home/myname/Syncfolder/"

My crontab configuration was as follows:

 m h  dom mon dow   command
 0,5,10,15,20,25,30,35,40,45,50,55 * * * * sh /usr/local/bin/s4lj.bash

Note that I copied the script from ~ to /usr/local/bin/ first, to avoid root problems.

I've read How to execute script on shutdown? and How to write an init script that will execute an existing start script?.

After doing that, I've done this:

  1. I've made s4lj.bash executable, and then copied it to /etc/init.d/.
  2. For startup, I've made a symlink in /etc/rc2.d/ to /etc/init.d/s4lj.bash, and renamed it to S70s4lj.bash.
  3. For restart, I've made a symlink in /etc/rc6.d/ to /etc/init.d/s4lj.bash, and renamed it to K70s4lj.bash.
  4. For shutdown, I've made a symlink in /etc/rc0.d/ to /etc/init.d/s4lj.bash, and renamed it to K70s4lj.bash.

Still, the script won't be run in any of these situations. How can I make the script get executed?

I'd be happiest with a proper *.conf file in /etc/init.

Thanks in advance.

© Ask Ubuntu or respective owner

Related posts about bash

Related posts about upstart