Betriebssysteme > Solaris
"ps -ef" und 'full command'
Ten Little Indyans:
--- Zitat von: Toktar am 05. Dezember 2009, 11:39:10 ---Was bringt denn ein '/usr/ucb/ps -axw > processlist.txt'.
--- Ende Zitat ---
Das gleiche. Grund für das Problem ist wohl dass /usr/ucb/ps sich anders verhält wenn seine Standardausgabe kein TTY ist. Mich hat es vor einigen Jahren auch mal genervt. Damals hatte ich einen Bug-Report für Solaris 2.5 bei Sun gefunden in dem stand etwas wie "wir wissen das es ein Problem ist, haben aber nicht vor es zu beheben". (Vom Submit Date her könnte es der hier gewesen sein, aber ich bin mir sicher damals deutlich mehr Infos dazu gesehen zu haben. ???)
Die bereits erwähnten pargs und pfiles sind eine sinnvolle Alternative. pargs gibt es aber erst seit Solaris 9, auf den 8'er und 2.6'er Gurken unseres Kunden habe ich also nichts davon. Bei pfiles kommt es natürlich darauf an ob der Prozess die Datei zu dem Zeitpunkt überhaupt geöffnet hat. Wenn nicht wird sie auch nicht angezeigt.
Sonnenbrand:
--- Zitat von: Ten Little Indyans am 07. Dezember 2009, 09:35:37 ---Die bereits erwähnten pargs und pfiles sind eine sinnvolle Alternative. pargs gibt es aber erst seit Solaris 9, auf den 8'er und 2.6'er Gurken unseres Kunden habe ich also nichts davon. Bei pfiles kommt es natürlich darauf an ob der Prozess die Datei zu dem Zeitpunkt überhaupt geöffnet hat. Wenn nicht wird sie auch nicht angezeigt.
--- Ende Zitat ---
OK - das mit Solaris 8 und 2.6 ändert die Lage natürlich etwas.
Mir ist früher schon mal aufgefallen das /usr/ucb/ps bei wiederholten -w Optionen mehr Output generiert. Schau mal ob dir das etwas bringt.
Andi
signal_15:
fast schon wieder Mahlzeit,
danke erstmal fuer die hinweise auf pargs und pfiles. aber leider bringen die beiden mich genauso wenig weiter wie '/usr/ucb/ps -axw...'
--- Code: ---ismine~# /usr/ucb/ps -axwww >> ps.txt
ismine~# cat ps.txt
PID TT S TIME COMMAND
...
...
10365 ? S 0:00 sh -c /usr/local/bin/convert -quality 95 -antialias -geometry 48x29 'albums/pho
10366 ? S 0:00 sh -c /usr/local/bin/convert -quality 95 -antialias -geometry 48x31 'albums/pho
10367 ? R 0:00 /usr/local/bin/convert -quality 95 -antialias -geometry 48x29 albums/photo-upload/HDRnTONE/Duomo_di_Milano
10368 ? R 0:00 /usr/local/bin/convert -quality 95 -antialias -geometry 48x31 albums/photo-upload/HDRnTONE/Duomo_di_Milano
10371 ? R 0:00 sh -c /usr/local/bin/convert -quality 95 -antialias -geometry 31x48 'albums/pho
10372 ? R 0:00 /usr/local/bin/convert -quality 95 -antialias -geometry 31x48 albums/photo-upload/HDRnTONE/Duomo_di_Milano
10373 ? R 0:00 sh -c /usr/local/bin/convert -quality 95 -antialias -geometry 48x31 'albums/pho
10374 ? R 0:00 /usr/local/bin/convert -quality 95 -antialias -geometry 48x31 albums/photo-upload/HDRnTONE/Duomo_di_Milano
...
--- Ende Code ---
hat das irgendwie mit dem aufruf von convert mittels 'sh -c' zu tun?
--- Code: ---ismine~# pargs 10365
10365: sh -c /usr/local/bin/convert -quality 95 -antialias -geometry 48x29 'albums/pho
argv[0]: sh
argv[1]: sh
argv[2]: sh
--- Ende Code ---
--- Code: ---ismine~# pfiles 10365
10365: sh -c /usr/local/bin/convert -quality 95 -antialias -geometry 48x29 'a
Current rlimit: 256 file descriptors
0: S_IFCHR mode:0666 dev:136,0 ino:3263 uid:0 gid:3 rdev:13,2
O_RDONLY
1: S_IFIFO mode:0000 dev:284,0 ino:475707 uid:1 gid:12 size:0
O_RDWR
2: S_IFREG mode:0644 dev:136,0 ino:138257 uid:0 gid:1 size:21863876
O_WRONLY|O_APPEND|O_CREAT|O_LARGEFILE
3: S_IFSOCK mode:0666 dev:283,0 ino:36281 uid:0 gid:0 size:0
O_RDWR
sockname: AF_INET6 :: port: 80
4: S_IFIFO mode:0000 dev:284,0 ino:53214 uid:0 gid:1 size:8713
O_RDWR|O_NONBLOCK
5: S_IFIFO mode:0000 dev:284,0 ino:53214 uid:0 gid:1 size:0
O_RDWR
6: S_IFREG mode:0644 dev:136,0 ino:138257 uid:0 gid:1 size:21863876
O_WRONLY|O_APPEND|O_CREAT|O_LARGEFILE
7: S_IFREG mode:0644 dev:136,0 ino:138258 uid:0 gid:1 size:34346788
O_WRONLY|O_APPEND|O_CREAT|O_LARGEFILE
8: S_IFREG mode:0600 dev:0,2 ino:10623171 uid:0 gid:1 size:0
O_RDWR|O_CREAT|O_EXCL
9: S_IFREG mode:0644 dev:136,0 ino:139503 uid:0 gid:1 size:0
O_WRONLY|O_CREAT|O_EXCL
10: S_IFSOCK mode:0666 dev:283,0 ino:14250 uid:0 gid:0 size:0
O_RDWR|O_NONBLOCK
sockname: AF_INET6 ::ffff:192.168.2.12 port: 80
peername: AF_INET6 ::ffff:217.89.65.130 port: 3610
11: S_IFDIR mode:0755 dev:136,0 ino:2 uid:0 gid:0 size:512
O_RDONLY
12: S_IFSOCK mode:0666 dev:283,0 ino:17127 uid:0 gid:0 size:0
O_RDWR
sockname: AF_UNIX
peername: AF_UNIX /tmp/mysql.sock
--- Ende Code ---
ct,
vab:
Leider schreibst Du nicht, welche Solaris-Version Du benutzt.
In allen Versionen geht "truss", damit kannst Du dem Prozeß beim Datei-Öffnen zuschauen.
Ab Solaris 10 gibt es "dtrace", damit geht das noch wesentlich komfortabler. Siehe z.B. das Script "opensnoop" aus dem dtrace-Toolkit:
http://www.brendangregg.com/DTraceToolkit-0.99.tar.gz
Gruß -- Volker
Ten Little Indyans:
--- Zitat von: signal_15 am 07. Dezember 2009, 11:42:08 ---hat das irgendwie mit dem aufruf von convert mittels 'sh -c' zu tun?
--- Ende Zitat ---
Hast Du auch mal pargs 10367 probiert? Also direkt den convert-Prozess und nicht die Shell die diesen nur aufruft. Wobei mich das Ergebnis für den sh-Prozess auch wundert. Hab hier auf der Arbeit leider kein Solaris > 8 System greifbar um mir selbst ein Bild zu machen was da abgeht...
--- Zitat ---
--- Code: ---ismine~# pfiles 10365
10365: sh -c /usr/local/bin/convert -quality 95 -antialias -geometry 48x29 'a
Current rlimit: 256 file descriptors
0: S_IFCHR mode:0666 dev:136,0 ino:3263 uid:0 gid:3 rdev:13,2
O_RDONLY
1: S_IFIFO mode:0000 dev:284,0 ino:475707 uid:1 gid:12 size:0
O_RDWR
2: S_IFREG mode:0644 dev:136,0 ino:138257 uid:0 gid:1 size:21863876
O_WRONLY|O_APPEND|O_CREAT|O_LARGEFILE
...
--- Ende Code ---
--- Ende Zitat ---
Jetzt fällt mir wieder ein warum ich so selten pfiles nutze. ::)
Es liefert leider keine fertig aufbereiteten Dateinamen mit Pfad, sondern das Device auf dem das Filesystem liegt sowie die Inode-Nummer der Datei. Den Rest darf man sich dann selbst zusammensuchen, wobei ich meist mit dem Device Probleme habe da jeder Server anders konfiguriert ist (mal /dev/md/dsk/*, mal /dev/vx/dsk/rootdg/* - da muss man also erstmal mit wissen was alles von wo gemountet ist). Wenn das Filesystem bekannt ist lässt sich die Inode einfach mit find filesystem -inum n aufspüren.
z.B.
--- Zitat ---$ pfiles 10244
10244: -ksh
Current rlimit: 1024 file descriptors
...
62: S_IFREG mode:0644 dev:276,13034 ino:364051 uid:25610 gid:27000 size:86
O_RDONLY|O_LARGEFILE FD_CLOEXEC
...
$ ls -l /dev/vx/dsk/rootdg/* | grep 276,13034
brw------- 1 root root 276,13034 Mar 20 2009 /dev/vx/dsk/rootdg/u
$ df /dev/vx/dsk/rootdg/u
/u (/dev/vx/dsk/rootdg/u): 2058018 blocks 442439 files
$ find /u -inum 364051 -print
/u/edi/edi/.profile
--- Ende Zitat ---
Hurrah. Jetzt weiss ich das meine Korn Shell die .profile geöffnet hat. ;D
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln