diff --git a/ifupdown/statemanager.py b/ifupdown/statemanager.py index 8e6c0d3..a7d75a0 100644 --- a/ifupdown/statemanager.py +++ b/ifupdown/statemanager.py @@ -58,6 +58,12 @@ class stateManager(): state_filename = 'ifstatenew' """name of the satefile """ + state_rundir = '/run/network/' + """name of the state run dir """ + + state_runlockfile = 'ifstatelock' + """name of the state run lock file """ + def __init__(self): """ Initializes statemanager internal state @@ -68,6 +74,8 @@ class stateManager(): self.__class__.__name__) if not os.path.exists(self.state_dir): os.mkdir(self.state_dir) + if not os.path.exists(self.state_rundir): + os.mkdir(self.state_rundir) self.state_file = self.state_dir + self.state_filename def save_ifaceobj(self, ifaceobj): @@ -146,6 +154,7 @@ class stateManager(): self.logger.debug('saving state ..') for ifaceobjs in self.ifaceobjdict.values(): [pickling.save_obj(f, i) for i in ifaceobjs] + open('%s/%s' %(self.state_rundir, self.state_runlockfile), 'w').close() except: raise diff --git a/init.d/networking b/init.d/networking index 45d3d78..09ead81 100644 --- a/init.d/networking +++ b/init.d/networking @@ -11,7 +11,10 @@ PATH="/sbin:/bin" RUN_DIR="/run/network" -IFSTATE="$RUN_DIR/ifstate" +IFSTATE_LOCKFILE="${RUN_DIR}/ifstatelock" + +STATE_DIR="/var/tmp/network" +IFSTATE_FILE="${STATE_DIR}/ifstatenew" NAME=networking SCRIPTNAME=/etc/init.d/$NAME @@ -37,7 +40,7 @@ gen_examples() { # # generate files only at boot - [ -f /var/tmp/network/ifstatenew ] && return + [ -f ${IFSTATE_LOCKFILE} ] && return python_ifupdown2_docdir="/usr/share/doc/python-ifupdown2" swpfile=${python_ifupdown2_docdir}"/examples/swp_defaults" @@ -52,7 +55,7 @@ gen_examples() { perf_options() { # At bootup lets set perfmode - [ -f /var/tmp/network/ifstatenew ] && echo -n "" && return + [ -f ${IFSTATE_LOCKFILE} ] && echo -n "" && return echo -n "--perfmode" } @@ -124,6 +127,8 @@ ifup_hotplug () { } ifupdown_init() { + # remove state file at boot + [ ! -e ${IFSTATE_LOCKFILE} ] && rm -f ${IFSTATE_FILE} [ ! -e /run/network ] && mkdir -p /run/network &>/dev/null [ ! -e /etc/network/run ] && \ ln -sf /run/network /etc/network/run &>/dev/null