X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=src%2Fnepi%2Fresources%2Flinux%2Fapplication.py;h=e874bcfd60aaac348ed8443b5e658f6bb02c976b;hb=8b192f1c0cc55e5bc847ce40436ab55ddce0585c;hp=a55fab54b1a75fdacff5773b2f5958bfa2cb3b52;hpb=7f6a711e6d4a245a1f4b104ab9e999af484a8d69;p=nepi.git diff --git a/src/nepi/resources/linux/application.py b/src/nepi/resources/linux/application.py index a55fab54..e874bcfd 100644 --- a/src/nepi/resources/linux/application.py +++ b/src/nepi/resources/linux/application.py @@ -654,21 +654,23 @@ class LinuxApplication(ResourceManager): # requested every 'state_check_delay' seconds. state_check_delay = 0.5 if tdiffsec(tnow(), self._last_state_check) > state_check_delay: - # check if execution errors occurred - (out, err), proc = self.node.check_errors(self.run_home) - - if err: - msg = " Failed to execute command '%s'" % self.get("command") - self.error(msg, out, err) - self.fail() - - elif self.pid and self.ppid: - # No execution errors occurred. Make sure the background - # process with the recorded pid is still running. + if self.pid and self.ppid: + # Make sure the process is still running in background status = self.node.status(self.pid, self.ppid) if status == ProcStatus.FINISHED: - self._state = ResourceState.FINISHED + # If the program finished, check if execution + # errors occurred + (out, err), proc = self.node.check_errors( + self.run_home) + + if err: + msg = " Failed to execute command '%s'" % \ + self.get("command") + self.error(msg, out, err) + self.fail() + else: + self._state = ResourceState.FINISHED self._last_state_check = tnow()