2013-10-23 4 views
6

Wenn ich "ps -efW" verwenden, listet es die Windows-Prozesse, aber nicht mit Befehlszeilenargumente.Wie zu sehen, Prozess mit Argumenten in Windows mit irgendwelchen Cygwin-Dienstprogramme

Ich stieß auf 3 Links, wo gesagt wurde, "pstree", "/ proc/PID/cmdline", "procps" zu verwenden.

http://cygwin.com/ml/cygwin/2007-04/msg00813.html

http://cygwin.com/ml/cygwin/2007-04/msg00817.html

http://cygwin.com/ml/cygwin/2007-04/msg00821.html

aber ich außer procps in Cygwin 32-Bit-Paket finden nicht.

sogar nach dem installierten procps, weiß ich nicht, wie man verwendet. Lies die Manpage. aber hat keine Ahnung bekommen.

kann jemand bitte helfen?

für z.B.

wmic Befehl kann ich den gesamten Prozess mit Argumenten sehen.

C:\Users\test1>wmic process get ProcessID, Commandline /format:csv |grep cmd 
OSWIN7VC10-32B1,"C:\Windows\system32\cmd.exe" ,2904 
OSWIN7VC10-32B1,C:\Windows\system32\cmd.exe /c c:\ostore74\src\osci\scripts\buil 
d_test\nt\batch_conf\winnt_vc100_weekly.bat >C:\Users\test1\AppData\Local\Tem 
p\s1io.4 2>C:\Users\test1\AppData\Local\Temp\s1io.5,3968 
OSWIN7VC10-32B1,C:\Windows\system32\cmd.exe /c C:\apache-ant-1.7.1\bin\ant.bat - 
Djboss.home=C:\ostore74\tmp\javaee\jboss-4.2.3.GA -emacs -k -f C:\ostore74\src\j 
mtl\build.xml overnight >> \\ostorenas\odi\ostore_platform_logs\ostore\7.4 
.0\test1\winnt_vc100\2013-10-18-1720\unit_retail_jmtl.log 2>&1,1864 
OSWIN7VC10-32B1,"C:\Windows\system32\cmd.exe" ,604 
OSWIN7VC10-32B1,grep cmd,2064 

aber mit dem Befehl cygwin ps.

C:\Users\test1>ps -efW |grep cmd 
     0 2904  0 ?   Oct 17 C:\Windows\System32\cmd.exe 
     0 3968  0 ?   Oct 18 C:\Windows\System32\cmd.exe 
     0 1864  0 ?   Oct 18 C:\Windows\System32\cmd.exe 
     0 3200  0 ?  08:39:43 C:\Windows\System32\cmd.exe 

Antwort

6

Wenn Sie Argumente nur für Cygwin Prozesse benötigen, können Sie

procps -wwFAH 

oder

pstree -a 

(pstree ist ein Teil des psmisc Paket).

Wenn Sie Argumente für Windows-Prozesse benötigen, können Sie auch wmic verwenden (es funktioniert in der Cygwin-Shell). Alternativ können Sie versuchen, process.c des win7util package Patch, um eine vollständige Befehlszeile einzuschließen.

1

Vorwort: Ok ... Also das war wirklich nervig. Es schien einfach keinen praktikablen Weg zu geben, diese Informationen programmatisch in Cygwin zu übernehmen. Jedes Mal, wenn ich mit einer Lösung anfing, dauerte es mehr als 20 Minuten, den Pfad/die Lösung zu verwerfen und den Fehler zu beheben. Mit WMI wurde Wmic, selbst wenn er aus der Registry kam, lächerlich. Nichts lieferte zuverlässig, und selbst die WMI listet die CMD-Linie meistens nicht auf. Immer endete damit, einen dll/exe-Analysator aufzubauen.

Dann habe ich heute einige DLL-Arbeit, unabhängig von Cygwin, und getippte "listdlls". Zuerst dachte ich, es sei nur eine gerollte Funktion oder ein Alias, höchstwahrscheinlich Nirsoft's RegDLLView. Aber schnell erkannt, es ist wahrscheinlich Sysinternal listdlls.exe, die Befehlszeile ist!

Lösung:

  • Look-up und speichern pid für Namen der ausführbaren Datei Suchbegriff
  • speichern Ergebnisse von „listdlls.exe“
  • Schleife durch Anordnung von PIDs \
  • lookup pid Prozess name \
  • Drucken Sie die passende Befehlszeile für Prozessnamen gegen listdlls führt

Für grobes Beispiel (Abhängigkeiten = listdlls.exe, grep , awk, ps "procps"):

__getexecmd() { 
    [ -z "[email protected]" ] && return 1 
    local term="[email protected]" 
    hash listdlls || return 1 
    local dlls="$(listdlls)" 
    for i in $(ps -Wa | awk '/'"$term"'/ {print $1}'); do 
     echo "$dlls" | grep -A1 "$i" | awk '/Command\ line\:/{gsub(/Command\ line\:\ /,"");print $0}' 
    done 
    return 0 
} 

ich wirklich denke, das ist, was Sie waren Lassen Sie mich wissen Beifall

..
+0

Was ist diese "__getexeccmd" -Funktion? Das ist keine Bash-Funktion. Wie soll jemand das benutzen? –

+0

Verwenden Sie es wie Sie möchten ... Sie könnten es in Ihr Bash-Profil laden, vielleicht einen freundlicheren Namen .... Sie könnten es leicht in ein Bash-Skript umwandeln, es in "usr/bin" werfen oder es als Alias ​​verwenden. – jonretting

Verwandte Themen