summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntoine Beaupré <anarcat@koumbit.org>2015-06-18 16:43:17 -0400
committerAntoine Beaupré <anarcat@koumbit.org>2015-06-18 17:15:28 -0400
commit7b99c89edf698d295dc21aba97800166c7961cf9 (patch)
tree80779210889799033ab90426f059429fb627a747
parent50685a8bc739d28ab1df830c707d1091a94c08bb (diff)
make autossh fork properly
-rw-r--r--files/autossh.init.d9
-rw-r--r--manifests/autossh.pp9
2 files changed, 11 insertions, 7 deletions
diff --git a/files/autossh.init.d b/files/autossh.init.d
index bb1119e..92bd5f4 100644
--- a/files/autossh.init.d
+++ b/files/autossh.init.d
@@ -19,13 +19,16 @@ DESC="autossh"
NAME=autossh
USER=$NAME
DAEMON=/usr/bin/autossh
-DAEMON_ARGS=""
+DAEMON_ARGS="-f"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+AUTOSSH_PIDFILE=$PIDFILE
+export AUTOSSH_PIDFILE
+
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
@@ -46,9 +49,9 @@ do_start()
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
- start-stop-daemon --start --quiet --background --user $USER --pidfile $PIDFILE --makepidfile --exec $DAEMON --test > /dev/null \
+ start-stop-daemon --start --quiet --user $USER --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
|| return 1
- start-stop-daemon --start --quiet --background --user $USER --chuid $USER --pidfile $PIDFILE --makepidfile --exec $DAEMON -- \
+ start-stop-daemon --start --quiet --user $USER --chuid $USER --pidfile $PIDFILE --exec $DAEMON -- \
$DAEMON_ARGS \
|| return 2
# The above code will not work for interpreted scripts, use the next
diff --git a/manifests/autossh.pp b/manifests/autossh.pp
index fadc575..1ded7eb 100644
--- a/manifests/autossh.pp
+++ b/manifests/autossh.pp
@@ -1,7 +1,8 @@
class sshd::autossh($host,
- $port = undef, # this should be a remote->local hash
- $remote_user = undef,
- $user = 'root',
+ $port = undef, # this should be a remote->local hash
+ $remote_user = undef,
+ $user = 'root',
+ $pidfile = '/var/run/autossh.pid',
) {
if $port {
$port_ensure = $port
@@ -22,7 +23,7 @@ class sshd::autossh($host,
source => 'puppet:///modules/sshd/autossh.init.d';
'/etc/default/autossh':
mode => '0444',
- content => "USER=$user\nDAEMON_ARGS='-o ServerAliveInterval=15 -o ServerAliveCountMax=4 -q -N -R $port_ensure:localhost:22 $remote_user_ensure@$host'\n";
+ content => "USER=$user\nPIDFILE=$pidfile\nDAEMON_ARGS='-f -o ServerAliveInterval=15 -o ServerAliveCountMax=4 -q -N -R $port_ensure:localhost:22 $remote_user_ensure@$host'\n";
}
package { 'autossh':
ensure => present,