Thanks to all, but a bit confused now…

So, @kyson-lok shall I revert back to what it was initially and just add some logic from @nopro404 at the top of the startvpn start function like

start(){
if [ “$(pgrep /usr/sbin/openvpn)” ]; then
echo OpenVPN already started… Exiting.
exit 1
fi

How shall my startvpn look eventually?

is this correct:

start(){
if [ “$(pgrep /usr/sbin/openvpn)” ]; then
echo OpenVPN already started… Exiting.
exit 1
fi
/etc/init.d/openvpn disable
# /usr/sbin/openvpn --config “$ovpn” --script-security 2 --route-delay 2 --route-up /usr/bin/ovpn_check_route --remap-usr1 SIGHUP --writepid /var/run/ovpn_client.pid &
enabled=$(uci get glconfig.openvpn.enable)
[ -z “$enabled” -o “$enabled” = “0” ] && return;

much appreciated