Skip to content

Commit

Permalink
Merge pull request #980 from aginika/add-master-came-from
Browse files Browse the repository at this point in the history
[jsk_tools] Add Checker for where rosmaster came from
  • Loading branch information
garaemon committed Jun 4, 2015
2 parents 1d99b11 + c63fb56 commit 556b83b
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions jsk_tools/src/jsk_tools/sanity_lib.py
Original file line number Diff line number Diff line change
Expand Up @@ -337,3 +337,36 @@ def checkBlackListDaemon(daemon_names, kill=False):

else:
okMessage("No BAD Daemon " + daemon_name + " found.")

class ROSMasterChecker():
def __init__(self):
self.rosmater_pid = None
self.cur_tracking_pid = None

def getProcessNameFromPID(self, pid):
return subprocess.check_output("ps -p %s -o comm= " % (str(pid)), shell=True).strip("\n")

def getParentPID(self, pid):
return subprocess.check_output("ps -p " + str(pid) + " -oppid= ", shell=True).strip("\n")

def getMasterPID(self):
self.rosmaster_pid = subprocess.check_output("sudo ps aux | grep rosmaster | cut -f 3 -d ' ' | sed -n '1p'", shell=True).strip("\n")

def checkIsFromRoscore(self):
self.getMasterPID()
self.cur_tracking_pid = self.rosmaster_pid
cur_tracking_pname = self.getProcessNameFromPID(self.cur_tracking_pid)
while not cur_tracking_pname in [ "bash", "gnome-terminal"]:
cur_tracking_pname = self.getProcessNameFromPID(self.cur_tracking_pid)
if cur_tracking_pname == "roslaunch":
errorMessage("This rosmaster is generated by ROSLAUNCH !!")
return False
self.cur_tracking_pid = self.getParentPID(self.cur_tracking_pid)
else:
okMessage("This rosmaster is generated by roscore")
return True

def checkROSCoreROSMaster():
indexMessage("Check ROSmaster came from roscore")
rmc = ROSMasterChecker()
rmc.checkIsFromRoscore()

0 comments on commit 556b83b

Please sign in to comment.