forked from nutechsoftware/ser2sock
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ser2sock
executable file
·120 lines (99 loc) · 2.95 KB
/
ser2sock
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/bin/bash
# SER2SOCK
### BEGIN INIT INFO
#
# Provides: ser2sock
# Required-Start: $remote_fs
# Required-Stop: $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: init script for ser2sock instantiation
# Description: This is the initialization script for ser2sock.
#
### END INIT INFO
### Customization Instructions
# 1. Change line 2 to the name you'll be using for this script
# 2. Change the "Provides:" line to use the same name
# 3. Save this new script using the new name
# 4. Create a configuration file in /etc/ser2sock using
# the script name: <script filename>.conf
# 5. sudo cp <script filepath> /etc/init.d/
# 6. sudo update-rc.d <script filename> defaults
# 7. sudo /ect/init.d/<script filename> start
### -----NO MODIFICATIONS REQUIRED BELOW THIS LINE------
# Change this only if your executable has a different name
PROGRAM_NAME="ser2sock"
# Use the name of this script as the SCRIPT_NAME
SCRIPT_NAME=${0##*/}
CONF_FILE="/etc/ser2sock/${SCRIPT_NAME}.conf"
EXECUTABLE="/usr/local/bin/${PROGRAM_NAME}"
PID_FILE="/var/run/${SCRIPT_NAME}.pid"
#EXTRA_START_ARGS="--chuid pi:pi"
EXTRA_START_ARGS=""
DAEMON_ARGS="-d -f ${CONF_FILE} -P ${PID_FILE}"
RETVAL=0
BOLD=$(tput bold)
GREEN=$(tput setaf 2)
RED=$(tput setaf 1)
NORMAL=$(tput sgr0)
start() {
echo
echo $"Starting instantiation ${BOLD}${SCRIPT_NAME}${NORMAL} of ${BOLD}${PROGRAM_NAME}${NORMAL}..."
echo
echo "Script name : $SCRIPT_NAME"
echo "Executable file : $EXECUTABLE"
echo "Arguments : $DAEMON_ARGS"
echo "Configuration file: $CONF_FILE"
echo "PID file : $PID_FILE"
echo
start-stop-daemon --start $EXTRA_START_ARGS --pidfile $PID_FILE --exec $EXECUTABLE -- \
$DAEMON_ARGS >/dev/null 2>&1
RETVAL=$?
if [ $RETVAL = 0 ]; then
echo $"${BOLD}${GREEN}Started${NORMAL}"
else
echo $"${BOLD}${RED}Failed to start - Return Value = ${RETVAL}${NORMAL}"
fi
echo
return $RETVAL
}
stop() {
echo
echo $"Stopping instantiation ${BOLD}${SCRIPT_NAME}${NORMAL} of ${BOLD}${PROGRAM_NAME}${NORMAL}..."
echo
echo "Script name : $SCRIPT_NAME"
echo "Executable file : $EXECUTABLE"
echo "PID file : $PID_FILE"
echo
start-stop-daemon --stop --signal TERM --quiet --retry=TERM/10/KILL/5 --pidfile $PID_FILE \
--name $PROGRAM_NAME >/dev/null 2>&1
RETVAL=$?
if [ $RETVAL = 0 ]; then
echo $"${BOLD}${GREEN}Stopped${NORMAL}"
else
if [ $RETVAL = 1 ]; then
echo $"${BOLD}${GREEN}Already stopped - Return Value = ${RETVAL}${NORMAL}"
else
echo $"${BOLD}${RED}Failed to stop - Return Value = ${RETVAL}${NORMAL}"
fi
fi
# rm -f $PID_FILE
echo
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo $"Usage: $PROGRAM_NAME {start|stop|restart}"
exit 1
esac
exit $RETVAL