utils: make subd_pid return the *last* pid, in case we restarted daemon.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell 2018-06-04 13:58:52 +09:30
parent 5ec454c7b2
commit 383b309a00
1 changed files with 7 additions and 2 deletions

View File

@ -472,8 +472,13 @@ class LightningNode(object):
def subd_pid(self, subd):
"""Get the process id of the given subdaemon, eg channeld or gossipd"""
pidline = self.daemon.is_in_log('lightning_{}.*: pid [0-9]*,'.format(subd))
return re.search(r'pid ([0-9]*),', pidline).group(1)
ex = re.compile(r'lightning_{}.*: pid ([0-9]*),'.format(subd))
# Make sure we get latest one if it's restarted!
for l in reversed(self.daemon.logs):
group = ex.search(l)
if group:
return group.group(1)
raise ValueError("No daemon {} found".format(subd))
def is_channel_active(self, chanid):
channels = self.rpc.listchannels()['channels']