Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- import os, sys
- def run_sudo():
- if os.getuid() != 0:
- sudo = 'sudo'
- script = os.path.abspath(sys.argv[0])
- cmd = [sudo, sys.executable, script] + sys.argv[1:]
- os.execlp(sudo, *cmd)
- def fromenv(args):
- if len(args) != 2:
- print 'Usage:', args[0], 'pid'
- sys.exit(1)
- pid = args[1]
- SKIP_ENV=["PWD", "WINDOWID"]
- filename = os.path.join(os.path.sep, 'proc', pid, 'environ')
- env = open(filename).read()
- env2 = []
- for e in env.split(chr(0)):
- if not '=' in e:
- continue
- k, v = e.split('=', 1)
- if k in SKIP_ENV:
- continue
- env2.append(k + '="' + v + '"')
- print 'eval', ' '.join(env2)
- def showcmd(args):
- for pid in args[1:]:
- filename = os.path.join(os.path.sep, 'proc', pid, 'cmdline')
- if not os.access(filename, os.R_OK):
- return
- cmdline = open(filename).read()
- print 'pid:', pid, 'command:', cmdline
- if __name__ == '__main__':
- run_sudo()
- cmd = os.path.basename(sys.argv[0])
- if cmd == 'proctool':
- sys.argv = sys.argv[1:]
- cmd = sys.argv[0]
- funcs = {
- 'fromenv': fromenv,
- 'showcmd': showcmd,
- }
- func = funcs.get(cmd)
- if func:
- func(sys.argv)
- else:
- print 'no such function:', cmd
Advertisement
Add Comment
Please, Sign In to add comment