On 20/02/2017 16:42, Stefan Raspl wrote: > +def get_gname_from_pid(pid): > + """Returns the guest name for a QEMU process pid. > + > + Extracts the guest name from the QEMU comma line by processing the '-name' > + option. Will also handle names specified out of sequence. > + > + """ > + name = '' > + try: > + line = open('/proc/{}/cmdline'.format(pid), 'rb').read().split('\0') > + parms = line[line.index('-name') + 1].split(',') > + while '' in parms: > + # commas are escaped (i.e. ',,'), hence e.g. 'foo,bar' results in > + # ['foo', '', 'bar'], which we revert here > + idx = parms.index('') > + parms[idx - 1] += ',' + parms[idx + 1] > + del parms[idx:idx+2] > + # the '-name' switch allows for two ways to specify the guest name, > + # where the plain name overrides the name specified via 'guest=' > + for arg in parms: > + if '=' not in arg: > + name = arg > + break > + if arg[:6] == 'guest=': > + name = arg[6:] > + except (ValueError, IOError, IndexError): > + pass > + > + return name > + > + That's as hideous as it is useful! :) Paolo