]> git.pld-linux.org Git - packages/autossh.git/blob - autossh.init
- added init subpackage containig init script
[packages/autossh.git] / autossh.init
1 #!/bin/sh
2 #
3 # autossh       ssh sessions manager
4 #
5 # chkconfig:    345 82 18
6 #
7 # description:  ssh sessions manager
8 #
9 # processname:  autossh
10 # config:       /etc/sysconfig/autossh
11 # pidfile:
12 #
13 # $Id$
14
15 # Source function library
16 . /etc/rc.d/init.d/functions
17
18 # Get network config
19 . /etc/sysconfig/network
20
21 # Set defaults
22 AUTOSSH_PORT=0     # connection monitoring port. 0 turns the monitoring function off.
23 AUTOSSH_LOGLEVEL=7
24
25 # Get service config - may override defaults
26 [ -f /etc/sysconfig/autossh ] && . /etc/sysconfig/autossh
27
28 export AUTOSSH_LOGLEVEL
29
30 # Check that networking is up.
31 if is_yes "${NETWORKING}"; then
32         if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
33                 msg_network_down autossh
34                 exit 1
35         fi
36 else
37         exit 0
38 fi
39
40 start() {
41         # Check if the service is already running?
42         if [ -f /var/lock/subsys/autossh ]; then
43                 msg_already_running autossh
44                 return
45         fi
46
47         # Parse autossh.tab file
48         # /^[^#$]/ - removes comments, i.e. lines begining with '#' and empty lines.
49         for I in $(awk -vFS=';' '/^[^#$]/ {print $1}' /etc/autossh.tab); do
50                 msg_starting "autossh $I"
51                 AUTOSSH_PIDFILE=/var/run/autossh/$I.pid $(awk -vFS=';' "-vport=$AUTOSSH_PORT" "/^$I;/ "'{printf("daemon autossh -M%s -fN %s\n", port, $2)}' /etc/autossh.tab)
52         done
53
54         # XXX How to detect errors?
55         touch /var/lock/subsys/autossh
56 }
57
58 stop() {
59         if [ ! -f /var/lock/subsys/autossh ]; then
60                 msg_not_running autossh
61                 return
62         fi
63
64         # Stop daemons.
65         for I in /var/run/autossh/*.pid; do
66           msg_stopping "autossh session $(basename $I)"
67           killproc --pidfile $I autossh -TERM
68         done
69         rm -f /var/lock/subsys/autossh
70 }
71
72 reload() {
73         if [ ! -f /var/lock/subsys/autossh ]; then
74                 msg_not_running autossh
75                 RETVAL=7
76                 return
77         fi
78
79         msg_reloading autossh
80         for I in /var/run/autossh/*.pid; do
81           killproc --pidfile $I autossh -USR1
82         done
83         # XXX How to detect errors?
84         # RETVAL=$?
85         RETVAL=0
86 }
87
88 condrestart() {
89         if [ ! -f /var/lock/subsys/autossh ]; then
90                 msg_not_running autossh
91                 RETVAL=$1
92                 return
93         fi
94
95         stop
96         start
97 }
98
99 RETVAL=0
100 # See how we were called.
101 case "$1" in
102   start)
103         start
104         ;;
105   stop)
106         stop
107         ;;
108   restart)
109         stop
110         start
111         ;;
112   try-restart)
113         condrestart 0
114         ;;
115   reload|force-reload)
116         reload
117         ;;
118   status)
119         status autossh
120         RETVAL=$?
121         ;;
122   *)
123         msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status}"
124         exit 3
125 esac
126
127 exit $RETVAL
This page took 0.075735 seconds and 3 git commands to generate.