View previous topic :: View next topic |
Author |
Message |
keopp Senior Member
Joined: 08 Nov 2008 Posts: 166 Location: Romania
|
Posted: Sun Aug 19, 2012 1:55 pm Post subject: pid files in /var/run |
|
|
Hello,
Looking for a server.pid file in /var/run(working to configure an openvpn servr), I strangely found only 3 files(except subdiredtories) inside this directory as follows:
Quote: |
2
=acpid.socket
server.pid
|
The weirdest thing, was the content of the file "2" created today:
Quote: |
ls: cannot access 1: No such file or directory
/dev/null
acpid.pid
atd.pid
dhcpd.pid
inetd.pid
klogd.pid
server.pid
sshd.pid
syslogd.pid
|
And it was right: excepting server.pid recently created, all the other was missing.
Reboot solved the problem but have someone a clue of what is the origin of that? |
|
Back to top |
|
keopp Senior Member
Joined: 08 Nov 2008 Posts: 166 Location: Romania
|
Posted: Sun Aug 19, 2012 2:15 pm Post subject: |
|
|
SOLVED
It is the "rm -rf" inside the rc.openvpn file:
Code: |
...
openvpn_stop() {
echo "Stoping Openvpn Tunnels"
killall openvpn 2&>1 /dev/null
rm -rf $piddir/*.pid
return 0
}
...
|
I belive it is enough to replace:
Code: | piddir=/var/run
...
$openvpn --writepid /var/run/`echo $conf | cut -d. -f1`.pid --daemon --config $conf
|
with
Code: | piddir=/var/run/openvpn
...
$openvpn --writepid $piddir/`echo $conf | cut -d. -f1`.pid --daemon --config $conf
|
I also belive that the following statements are not sintactically correct as the usage of /dev/null, 2 and 1.
Code: |
ls *.pid 1&>2 /dev/null
...
killall openvpn 2&>1 /dev/null |
because these are the generators of the files 2 and 1 containing error messages
Searcing for other script examples I found interesting and useful the inclusion of
Code: | /sbin/modprobe tun >/dev/null 2>&1 |
at the beginning of the rc script. |
|
Back to top |
|
gerasimos_h Site Admin
Joined: 09 Aug 2007 Posts: 1757 Location: Greece
|
Posted: Sun Aug 19, 2012 3:40 pm Post subject: |
|
|
You are correct, rc.openvpn it's a little messed up, it's my bad to not check it, how it works...
I'll fix it...
An updated package will upload soon along with other upgrades.
Thanks for the bug report...
gerasimos_h _________________ Superb! Mini Server Project Manager
http://sms.it-ccs.com |
|
Back to top |
|
keopp Senior Member
Joined: 08 Nov 2008 Posts: 166 Location: Romania
|
Posted: Sun Aug 19, 2012 4:46 pm Post subject: |
|
|
Ok, I'm glad to help. I use for now the followng working rc.openvpn:
Code: |
#!/bin/sh
# Start/stop/restart all the openvpn processes
#by Giancarlo Razzolini
#openvpn binary
openvpn=/usr/sbin/openvpn
#piddir
piddir=/var/run/openvpn
#conf dir
confdir=/etc/openvpn
openvpn_start() {
echo -n "Starting openvpn: "
/sbin/modprobe tun >/dev/null 2>&1
#for all the conf files in the openvpn dir, start a new process
cd $confdir
echo "Starting Openvpn Tunnels:"
for conf in `ls *.conf` ; do
echo -e "\t$openvpn $confdir/$conf"
$openvpn --writepid $piddir/`echo $conf | cut -d. -f1`.pid --daemon --config $conf
done
return 0
}
openvpn_status() {
cd $piddir
ls *.pid > /dev/null 2>&1
if [ "$?" != "0" ] ; then
echo "No openvpn process is running."
else
for process in `ls *.pid` ; do
echo Process `cat $process` is running...
done
fi
return 0
}
openvpn_stop() {
echo "Stoping Openvpn Tunnels"
killall openvpn > /dev/null 2>&1
rm -rf $piddir/*.pid
return 0
}
openvpn_restart() {
openvpn_stop
sleep 1
openvpn_start
}
case "$1" in
'start')
openvpn_start
;;
'status')
openvpn_status
;;
'stop')
openvpn_stop
;;
'restart')
openvpn_restart
;;
*)
echo "usage $0 start|stop|status|restart"
esac
|
|
|
Back to top |
|
|