]> git.pld-linux.org Git - packages/autossh.git/blame - autossh.init
- start/stop service in %post/%pre scriptlets of init subpackage
[packages/autossh.git] / autossh.init
CommitLineData
8ccce38e 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
22AUTOSSH_PORT=0 # connection monitoring port. 0 turns the monitoring function off.
23AUTOSSH_LOGLEVEL=7
24
25# Get service config - may override defaults
26[ -f /etc/sysconfig/autossh ] && . /etc/sysconfig/autossh
27
28export AUTOSSH_LOGLEVEL
29
30# Check that networking is up.
31if 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
36else
37 exit 0
38fi
39
40start() {
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
58stop() {
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
72reload() {
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
88condrestart() {
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
99RETVAL=0
100# See how we were called.
101case "$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
125esac
126
127exit $RETVAL
This page took 0.043241 seconds and 4 git commands to generate.