#!/usr/bin/env python3 # Copyright (c) 2009, Giampaolo Rodola', karthikrev. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """A clone of 'pidof' cmdline utility. $ pidof python 1140 1138 1136 1134 1133 1129 1127 1125 1121 1120 1119 """ import sys import psutil def pidof(pgname): # search for matches in the process name and cmdline return [ str(proc.pid) for proc in psutil.process_iter(['name', 'cmdline']) if proc.info["name"] == pgname or (proc.info["cmdline"] and proc.info["cmdline"][0] == pgname) ] def main(): if len(sys.argv) != 2: sys.exit(f"usage: {__file__} pgname") else: pgname = sys.argv[1] pids = pidof(pgname) if pids: print(" ".join(pids)) if __name__ == '__main__': main()