SysVinit service generator
Note: You can acheive the same thing that this project tries to acheive by using the MetaInit package in debian: (https://wiki.debian.org/MetaInit)
This script enables fast daemonization apps as a Linux services with SysVinit init system.
Look at LSB init scripts for more information.
# replace "$YOUR_SERVICE_NAME" with your service's name (whenever it's not enough obvious) cp "service.sh" "/etc/init.d/$YOUR_SERVICE_NAME" chmod +x /etc/init.d/$YOUR_SERVICE_NAME
Edit the script and replace following tokens:
Start and test your service:
service $YOUR_SERVICE_NAME start service $YOUR_SERVICE_NAME stop
Install service to be run at boot-time:
update-rc.d $YOUR_SERVICE_NAME defaults
For rpm based distributions such as CentOS or Red Hat, you can use
chkconfig $YOUR_SERVICE_NAME --add
If you want to see which runlevel your script will run in
chkconfig $YOUR_SERVICE_NAME --list
The service can uninstall itself with
service $NAME uninstall. Yes, that's very easy, therefore a bit dangerous. But as it's an auto-generated script, you can bring it back very easily. I use it for tests and often install/uninstall, that's why I've put that here.
Don't want it? Remove lines 56-58 of the service's script.
Your service will log its output to
/var/log/$NAME.log. Don't forget to setup a logrotate :)
Yep, I'm lazy too. But still, I've written a script to automate this :)
wget 'https://raw.githubusercontent.com/jasonblewis/sample-service-script/master/new-service.sh' && bash new-service.sh
In this script I will download
tempfile, replace some tokens, and then show you commands you should run as superuser.
If you feel confident enough with my script, you can
sudothe script directly:
wget 'https://raw.githubusercontent.com/jasonblewis/sample-service-script/master/new-service.sh' && sudo bash new-service.sh
Note: the cool hipsterish
curl $URL | bashwon't work here, I don't really want to check why.
The script works offline so you can clone this repository then you can upload this script on your server and run it directly:
sudo bash new-service.sh
The script also handle parameters as showed below:
sudo bash new-service.sh "service_name" "description" "command to execute" "user which should run command"
Creating the service:
Looking at service files (logs, pid):