Betriebssysteme > Solaris

"ps -ef" und 'full command'

<< < (2/3) > >>

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