Skip to content

Instantly share code, notes, and snippets.

@eduard-sukharev
Created January 7, 2022 18:54
Show Gist options
  • Save eduard-sukharev/dcb52b8ee454ecebb65a7aae54a748aa to your computer and use it in GitHub Desktop.
Save eduard-sukharev/dcb52b8ee454ecebb65a7aae54a748aa to your computer and use it in GitHub Desktop.
centos init script
#!/bin/sh
#
# example start stop daemon for CentOS (sysvinit)
#
# chkconfig: - 64 36
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 2 3 4 6
# Required-Start:
# description: example start stop daemon for CentOS
# processname: python
# pidfile: none
# lockfile: /var/lock/subsys/example
# Source function library.
. /etc/rc.d/init.d/functions
USER="username"
APPNAME="my_application_name"
APPBIN="python3"
APPARGS="app.py"
LOGFILE="/var/log/$APPNAME/error.log"
LOCKFILE="/var/lock/subsys/$APPNAME"
PIDFILE="/var/run/$APPNAME.pid"
LOGPATH=$(dirname $LOGFILE)
start() {
[ -x $prog ] || exit 5
[ -d $LOGPATH ] || mkdir $LOGPATH
[ -f $LOGFILE ] || touch $LOGFILE
echo -n $"Starting $APPNAME: "
cd /home/$USER/$APPNAME
daemon --user=$USER --pidfile $PIDFILE "$APPBIN $APPARGS >>$LOGFILE &"
RETVAL=$?
echo
if [ $RETVAL -eq 0 ] ; then
touch $LOCKFILE
ps -ef | awk "/$APPNAME"'/{print $2}' > $PIDFILE
fi
return $RETVAL
}
stop() {
echo -n $"Stopping $APPNAME: "
killproc -p $PIDFILE $APPNAME
RETVAL=$?
echo
[ $RETVAL -eq 0 ] rm -f $LOCKFILE $PIDFILE
return $RETVAL
}
restart() {
stop
start
}
rh_status() {
status -p $PIDFILE -l $LOCKFILE $APPNAME
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart)
$1
;;
status)
rh_status
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
exit 2
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment