Search code examples
sinatraserverunicorncentos6

Symlinking unicorn_init.sh into /etc/init.d doesn't show with chkconfig --list


I'm symlinking my config/unicorn_init.sh to /etc/init.d/unicorn_project with:

sudo ln -nfs config/unicorn_init.sh /etc/init.d/unicorn_<project>

Afterwards, when I run chkconfig --list my unicorn_ script doesn't show. I'm adding my unicorn script to load my application on server load.

Obviously, this is not allowing me to add my script with:

chkconfig unicorn_<project> on

Any help / advice would be awesome :).

Edit:

Also, when I'm in /etc/init.d/ and run:

sudo service unicorn_project start

It says: "unrecognized service"


Solution

  • I figured this out. There were two things wrong with what I was doing:

    1) You have to make sure your unicorn script can play nice with chkconfig by adding the below code below #!/bin/bash. Props to digitalocean's blog for the help.

    # chkconfig:   2345 95 20
    # description: Controls Unicorn sinatra server
    # processname: unicorn
    

    2) I was attempting to symlink the config/unicorn_init.sh file when I was already in the project directory which was creating a dangling symlink (pink colored symlink ~> should be teal) by using a relative path. To fix this, I removed the dangling symlink and provided the absolute path to the unicorn_init.sh file.

    To debug this I used ll in the /etc/init.d/ directory to see r,w,x permissions and file types, was running chkconfig --list to see a list of services in /etc/init.d/ and also was trying to run the dangling symlink in my /etc/init.d directory with sudo service unicorn_<project> restart

    Hope this helps someone.