From 14f0bffe259736ff6be724acf449a87514bdbb40 Mon Sep 17 00:00:00 2001 From: Ole Tange Date: Sat, 29 Jun 2019 18:07:35 +0200 Subject: [PATCH] pidcmd: Show the command running under a given pid. --- Makefile | 8 +++--- pidcmd/pidcmd | 70 +++++++++++++++++++++++++++++++++++++++++++++++ tracefile/test.sh | 19 +++++++++++++ 3 files changed, 93 insertions(+), 4 deletions(-) create mode 100755 pidcmd/pidcmd create mode 100644 tracefile/test.sh diff --git a/Makefile b/Makefile index c030bfa..2c09015 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ CMD = blink bsearch burncpu duplicate-packets em encdir field forever \ G gitnext gitundo goodpasswd histogram mtrr mirrorpdf neno \ - off pdfman plotpipe puniq ramusage rand rclean rina rn rrm \ - shython sound-reload stdout swapout T timestamp tracefile \ + off pdfman pidcmd plotpipe puniq ramusage rand rclean rina rn \ + rrm shython sound-reload stdout swapout T timestamp tracefile \ transpose upsidedown vid w4it-for-port-open wifi-reload wssh \ ytv yyyymmdd @@ -9,8 +9,8 @@ all: blink/blink.1 bsearch/bsearch.1 burncpu/burncpu.1 \ encdir/encdir.1 G/G.1 gitnext/gitnext.1 gitundo/gitundo.1 \ goodpasswd/goodpasswd.1 histogram/histogram.1 \ mirrorpdf/mirrorpdf.1 neno/neno.1 off/off.1 pdfman/pdfman.1 \ - plotpipe/plotpipe.1 puniq/puniq.1 rand/rand.1 rina/rina.1 \ - rn/rn.1 rrm/rrm.1 shython/shython.1 \ + pidcmd/pidcmd.1 plotpipe/plotpipe.1 puniq/puniq.1 rand/rand.1 \ + rina/rina.1 rn/rn.1 rrm/rrm.1 shython/shython.1 \ sound-reload/sound-reload.1 stdout/stdout.1 \ timestamp/timestamp.1 tracefile/tracefile.1 \ transpose/transpose.1 T/T.1 upsidedown/upsidedown.1 vid/vid.1 \ diff --git a/pidcmd/pidcmd b/pidcmd/pidcmd new file mode 100755 index 0000000..8331908 --- /dev/null +++ b/pidcmd/pidcmd @@ -0,0 +1,70 @@ +#!/bin/bash + +: <<=cut +=pod + +=head1 NAME + +pidcmd - Show the command run by a pid + + +=head1 SYNOPSIS + +B I + + +=head1 DESCRIPTION + +B show the command run by a pid. It is a bit similar to: + + ps aux | grep pid + +but it avoid false positives (if I matches a part of another +line). + + +=head1 EXAMPLE + +Show the command for pid 1 + + pidcmd 1 + + + +=head1 AUTHOR + +Copyright (C) 2019 Ole Tange, +http://ole.tange.dk and Free Software Foundation, Inc. + + +=head1 LICENSE + +Copyright (C) 2012 Free Software Foundation, Inc. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3 of the License, or +at your option any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + + +=head1 DEPENDENCIES + +B uses B. + + +=head1 SEE ALSO + +B + + +=cut + +cat /proc/$1/cmdline | xargs -0 diff --git a/tracefile/test.sh b/tracefile/test.sh new file mode 100644 index 0000000..b23e267 --- /dev/null +++ b/tracefile/test.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +doit() { + opt="$1" + file="$2" + sudo tracefile $opt dd if=/dev/zero of="$file" bs=1000k count=10 + sudo tracefile $opt chmod 600 $file + sudo tracefile $opt mkswap $file + sudo tracefile $opt swapon $file + sudo tracefile $opt swapoff $file + sudo rm "$file" +} +export -f doit + +# Test 2 char dir +mkdir -p tt/tt +parallel -vj1 doit \ + ::: '' -l -u \ + ::: tt/tt/../tt/test.img `pwd`/tt/tt/../tt/test.img | grep test.img