psutil
1#!/usr/bin/env python3
2
3# Copyright (c) 2009, Giampaolo Rodola', karthikrev. All rights reserved.
4# Use of this source code is governed by a BSD-style license that can be
5# found in the LICENSE file.
6
7
8"""A clone of 'pidof' cmdline utility.
9
10$ pidof python
111140 1138 1136 1134 1133 1129 1127 1125 1121 1120 1119
12"""
13
14from __future__ import print_function15
16import sys17
18import psutil19
20
21def pidof(pgname):22pids = []23for proc in psutil.process_iter(['name', 'cmdline']):24# search for matches in the process name and cmdline25if (26proc.info['name'] == pgname27or proc.info['cmdline']28and proc.info['cmdline'][0] == pgname29):30pids.append(str(proc.pid))31return pids32
33
34def main():35if len(sys.argv) != 2:36sys.exit('usage: %s pgname' % __file__)37else:38pgname = sys.argv[1]39pids = pidof(pgname)40if pids:41print(" ".join(pids))42
43
44if __name__ == '__main__':45main()46