(1) Your wrapper-file is not executable (chmod +x /home/myers/vpnc-wrapper).

(2) You missed to set the required first parameter to the wrapper.

More correct would be:

check process vpnc with pidfile /var/run/vpnc.pid
       start program = "/home/myers/vpnc-wrapper start"
       stop program = "/home/myers/vpnc-wrapper stop"

(3) Even more problematic: You are trying to use monit as process
controller, what it isn't (and can't do either).

Your wrapper has to exit after a short amount of time (defaults to 30s). So
you need something to control your daemons (or rewrite to your wrapper to
send the daemon to background). Just saw that Viktor already answered with
some more info, so I don't need to ;)

Yours

Henning


Am Mi., 6. Mai 2020 um 19:45 Uhr schrieb Patrick Baldwin <
[email protected]>:

> Hi, I'm experimenting with using VPNC to make a VPN connection to a client
> network via their Cisco router:  https://linux.die.net/man/8/vpnc
>
> It needs to be at least somewhat reliable, so I'd like to manage it with
> Monit, but I'm having some challenges with getting it going.  It will start
> and successfully establish the VPN tunnel when I start it manually, but so
> far I can't get it to start via Monit.
>
> Here's what I see on the Monit webmin:
>
> Process status
> ParameterValue
> Name vpnc
> Pid file /var/run/vpnc.pid
> Status Execution failed | Does not exist
> Monitoring status Monitored
> Monitoring mode active
> On reboot start
> Start program '/home/myers/vpnc-wrapper' timeout 30 s
> Stop program '/home/myers/vpnc-wrapper' timeout 30 s
> Data collected Wed, 06 May 2020 13:42:11
> Existence If doesn't exist then restart
>
>
> I verified the full path to VPNC:
>
> 12$ which vpnc
>
> /usr/sbin/vpnc
>
> Since VPNC doesn't make a pidfile, I created a wrapper script:
>
> -rw-rw-rw-. 1 root  root  246 May  5 18:54 vpnc-wrapper
>
> 41$ cat vpnc-wrapper
>
> #!/bin/bash
>
>  case $1 in
>
>     start)
>
>        echo $$ > /var/run/vpnc.pid;
>
>        exec 2>&1 /usr/sbin/vpnc 1>/tmp/vpnc.out
>
>        ;;
>
>      stop)
>
>        kill `cat /var/run/vpnc.pid` ;;
>
>      *)
>
>        echo "usage: vpnc {start|stop}" ;;
>
>  esac
>
>  exit 0
>
>
> And this is how I'm invoking it from my /etc/monitrc:
>
> check process vpnc with pidfile /var/run/vpnc.pid
>
>        start = "/home/myers/vpnc-wrapper"
>
>        stop = "/home/myers/vpnc-wrapper"
>
>
> Anyone have any thoughts for where I might be going wrong here?
>

Reply via email to