[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: /bin/-bash -c



Moin,

> Das da oben ist C Code. Die man Page findest Du in
> # dpkg -S /usr/share/man/man3/exec.3.gz
> manpages-dev: /usr/share/man/man3/exec.3.gz

✓

> Mit Login Shells hat das wenig zu tun. Heiko wollte vermutlich darauf
> hinaus, dass ein Programm unter Unix seinen Namen in der Prozessliste quasi
> beliebig setzen darf. Und eine Login Shell das dann entspechend tut.

Fast. Exec(3) hat tatsächlich nicht ausschließlich mit Login-Shells
etwas zu tun, sondern mit *jedem* Start eines Prozesses. Und es ist in
der Regel der Aufrufer, der den Prozessnamen beim Aufruf von exec(3) in
argv[0] einträgt.

Unter Linux (möglicherweise auch unter anderen unixähnliches
Betriebssystemen) ist es dem aufgerufenen Prozess allerdings ebenfalls
möglich, seinen Prozessnamen (also wieder argv[0]) zu setzen, und damit
in der Prozesstabelle anders auszusehen. 

Je nachdem, wie man die Prozesstabelle anschaut, sieht man entweder
argv[0], oder das aufgerufene Binary, oder den Pfad des Binaries.

Beispiel (hier ausgführt unter einer Bash!)
```
$ exec -l bash            # damit erzeugen wir vorsätzlich eine Login-Shell
                          # alternativ wäre auch exec -a -bash bash
                          # gegangen:
$ exec -a zzz sleep 1h &  # noch ein anderer (hier als Kind) Prozess
$ perl -e '$0 = "FOO"; sleep 90"' & # dieser setzt selbst seinen Namen
$ ps -opid,cmd,comm,exe   # und nun gucken wir mal nach den Prozessen
    PID CMD                         COMMAND         EXE
 807734 -bash                       bash            /usr/bin/bash
 807806 zzz 1h                      sleep           /usr/bin/sleep
 807809 FOO                         FOO             /usr/bin/perl
 807810 ps -opid,cmd,comm,exe       ps              /usr/bin/ps
$ _
```

Unix Grundlagenwissen, wurde bei uns früher in Heimatkunde, Klasse 3
vermittelt ;)


    Best regards from Dresden/Germany
    Viele Grüße aus Dresden
    Heiko Schlittermann
--
 SCHLITTERMANN.de ---------------------------- internet & unix support -
 Heiko Schlittermann, Dipl.-Ing. (TU) - {fon,fax}: +49.351.802998{1,3} -
 gnupg encrypted messages are welcome --------------- key ID: F69376CE -

Attachment: signature.asc
Description: PGP signature


Reply to: