Last active
April 26, 2025 17:13
-
-
Save pguillem/19693defb3feb0c02fe7 to your computer and use it in GitHub Desktop.
init.d script to launch consume_MT_messages.py as a system daemon (Should work in Debian/Ubuntu)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
### BEGIN INIT INFO | |
# Provides: rabbit consumer | |
# Required-Start: $network $local_fs | |
# Required-Stop: | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: 0 1 6 | |
# Short-Description: Jasmin SMS Gateway Mysql Reporter Init Script | |
# Description: Jasmin SMS Gateway Mysql Reporter Init Script | |
### END INIT INFO | |
VERBOSE='yes' | |
NAME='consume_MT_messages.py' #Set the name of your consumer script | |
COMMAND="/usr/src/jasmin_mysql/consume_MT_messages.py" #Set the PATH to your consumer script | |
COMMAND_ARGS='' | |
PATH=/sbin:/usr/sbin:/bin:/usr/bin | |
DESC="$NAME" | |
DAEMON=/usr/bin/python | |
PIDDIR=/var/run/jasmin | |
PIDFILE="$PIDDIR/$NAME.pid" | |
LOGDIR=/var/log/jasmin | |
LOGFILE="$LOGDIR/mysql-$NAME.log" | |
SCRIPTNAME="/etc/init.d/jasmind_consumer" | |
USER=jasmin | |
GROUP=jasmin | |
# Exit if USER or GROUP do not exist | |
getent passwd "$USER" >/dev/null || exit 11 | |
getent group "$GROUP" >/dev/null || exit 12 | |
# Exit if the jasmind.py is not found | |
[ -x $COMMAND ] || exit 21 | |
# Exit if the package is not installed | |
[ -x $DAEMON ] || exit 22 | |
# Exit if system folders do not exist or could not be created | |
[ -d $PIDDIR ] || mkdir $PIDDIR | |
[ -d $PIDDIR ] || exit 31 | |
[ -d $LOGDIR ] || mkdir $LOGDIR | |
[ -d $LOGDIR ] || exit 32 | |
. /lib/lsb/init-functions | |
# Function that starts the daemon/service | |
# | |
do_start() | |
{ | |
# Return | |
# 0 if daemon has been started | |
# 1 if daemon was already running | |
# 2 if daemon could not be started | |
start-stop-daemon --start --oknodo --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ | |
|| return 1 | |
start-stop-daemon --start --oknodo --quiet --background --exec $DAEMON \ | |
--user=$(id -u $USER) \ | |
--group=$(id -g $GROUP) \ | |
--pidfile=$PIDFILE \ | |
--make-pidfile \ | |
$COMMAND -- $COMMAND_ARGS \ | |
|| return 2 | |
} | |
# | |
# Function that stops the daemon/service | |
# | |
do_stop() | |
{ | |
# Return | |
# 0 if daemon has been stopped | |
# 1 if daemon was already stopped | |
# 2 if daemon could not be stopped | |
# other if a failure occurred | |
start-stop-daemon --stop --oknodo --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE | |
RETVAL="$?" | |
[ "$RETVAL" = 2 ] && return 2 | |
# Many daemons don't delete their pidfiles when they exit. | |
[ "$RETVAL" = 0 ] && rm -f $PIDFILE | |
return "$RETVAL" | |
} | |
# | |
# Function that sends a SIGHUP to the daemon/service | |
# | |
do_reload() { | |
echo "NOT IMPLEMENTED YET" | |
return 1 | |
# | |
# If the daemon can reload its configuration without | |
# restarting (for example, when it is sent a SIGHUP), | |
# then implement that here. | |
# | |
start-stop-daemon --stop --oknodo --signal 1 --quiet --pidfile $PIDFILE | |
return 0 | |
} | |
case "$1" in | |
start) | |
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME" | |
do_start | |
case "$?" in | |
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; | |
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; | |
esac | |
;; | |
stop) | |
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" | |
do_stop | |
case "$?" in | |
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; | |
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; | |
esac | |
;; | |
status) | |
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? | |
;; | |
#reload|force-reload) | |
# | |
# If do_reload() is not implemented then leave this commented out | |
# and leave 'force-reload' as an alias for 'restart'. | |
# | |
#log_daemon_msg "Reloading $DESC" "$NAME" | |
#do_reload | |
#log_end_msg $? | |
#;; | |
restart|force-reload) | |
# | |
# If the "reload" option is implemented then remove the | |
# 'force-reload' alias | |
# | |
log_daemon_msg "Restarting $DESC" "$NAME" | |
do_stop | |
case "$?" in | |
0|1) | |
do_start | |
case "$?" in | |
0) log_end_msg 0 ;; | |
1) log_end_msg 1 ;; # Old process is still running | |
*) log_end_msg 1 ;; # Failed to start | |
esac | |
;; | |
*) | |
# Failed to stop | |
log_end_msg 1 | |
;; | |
esac | |
;; | |
*) | |
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 | |
exit 3 | |
;; | |
esac | |
: |
I tried this but the message is not logging into my database. What could be the issue
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
daemon exec.
Failed to start LSB: Jasmin SMS Gateway Mysql Reporter Init Script
Help.