]> gitweb.fluxo.info Git - puppet-sshd.git/commitdiff
make autossh fork properly
authorAntoine Beaupré <anarcat@koumbit.org>
Thu, 18 Jun 2015 20:43:17 +0000 (16:43 -0400)
committerAntoine Beaupré <anarcat@koumbit.org>
Thu, 18 Jun 2015 21:15:28 +0000 (17:15 -0400)
files/autossh.init.d
manifests/autossh.pp

index bb1119ee69707833fdeb034a27d4f40dc96e397a..92bd5f434a86ae0b643b5037e546e664c48c7c6e 100644 (file)
@@ -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
index fadc575211c6fea80175cba5e5856ce760b1d0cc..1ded7eb914ba2b8e3e062bf82771507566f2dd74 100644 (file)
@@ -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,