[linux-l] Wrapper für $SHELL

Peter Ross Peter.Ross at alumni.tu-berlin.de
Sa Jan 3 00:09:45 CET 2004


On Fri, 2 Jan 2004, Oliver Beck wrote:

> Hmm, alles hier besagte ist mir vollkommen unbekannt ;)
> Die einzige Manpage die ich auf deinem Deb-woody habe ist die von
> acct(5) bzw acct(2). Und diese sehen mir schwer nach C-Funktionen
> aus...mit der ich(mangels C-Kenntnisse) nichts anfangen kann.

sa(8) nutzt dann halt diese, um auf dem in acct(5) beschriebenen Logfile
Statistiken zu erledigen.

Suche mal unter den Debian-Paketen, ich vermute, Du hast es nur nicht
installiert.

> > STATIC void
> > tryexec(char *cmd, char **argv, char **envp)
> > {
> >         int e;
> >
> >         execve(cmd, argv, envp);
> >         e = errno;
> >
> > --- Schnapp ---
> >
> > .. (Fehlerbehandlung)
> >
> > Vor das execve wuerde ich halt den gewuenschten Befehl setzen,
> > entweder eingebaut oder aber ebenfalls ein execve
>
> also müsste es, so wie ich es verstanden habe, folgendermaßen lauten:
>
>       execve(/sbin/systrace, cmd, argv, envp);
>
> Aber mit Sicherheit hab ich das falsch verstanden ;)

Dein execve hat einen Parameter zuviel, aber das Prinzip ist schon
richtig.

tryexec ruft das Programm auf. Ich weiss ja nicht, was Dein systrace
machen soll - ist es ein Wrapper um das Kommando wie z.B. time(1), oder
aber ein zusaetzliches Kommando, dann waere es eher sinnvoll, ein zweites
execve davor einzubauen.

Ob mit acct & Co. oder Patchen der Shell und dann wie -
das laesst sich nun besser entscheiden, wenn ich weiss, was Du
protokollieren willst.

<off topic>

Wegen der C-Kenntnisse.. ich will Dich ja nicht schlagen, aber ab eines
bestimmten Levels in der Administration ist das m.E. unumgaenglich, sich C
anzueignen.

Zum einen kommt man immer wieder in die Verlegenheit, irgendetwas
portieren oder anpassen zu muessen, zum anderen kommt man mit dem
Verstaendnis, wie Linux & Co, Netzwerke etc. funktionieren, ab einem
bestimmten Punkt nicht mehr weiter, ohne nicht mal in Quellen zu gucken.

Fuer Dich ist doch gerade GNU/Linux Closed Source ;-)

Keine Sorge, kaum einer hat damit angefangen, zuerst den Kernel
"durchzulesen", das Wissen kommt graduell.

Dass vor fuenfzehn Jahren noch nicht so viele fertigen Pakete rumlagen,
hatte sicher auch seinen Vorteil. Da lernt man eben beim Uebersetzen eines
GNU-Paketes, dass es Funktionen gibt, die unter Solaris in einer
socket-Library stecken.

Es ist halt wie mit dem Auto. Wenn der Trabbi stotterte, war
wahrscheinlich der Vergaser verdereckt, worauf man sich der beschaulichen
Taetigkeit des Auseinanderbauens, Reinigens und Zusammenbauens hingeben
konnte. (Nebenbei: das ersetzt auch so manche dem ostasiatischen
Kulturkreis abgeguckte Konzentrationsubung;-)

Heute sind die Autos relativ wartungsarm, wenn es nun aber holpert, muss
es in die Werkstatt, damit Fachleute ans Werk gehen koennen.

Merkwuerdig, dass es keinerlei Einsicht gibt, dass Computer immer
komplexer werden. Fachleute? Ach was, kinderleicht zu reparieren muss es
auch noch sein.

Ein Schulfreund, der vor zwanzig Jahren Auto-Mechaniker und -Elektriker
gelernt hat, erzaehlte mir kuerzlich, dass er im Laden immer noch
unentbehrlich ist, dann naemlich, wenn alle mit ihren schicken
Diagnosegeraeten rumstehen und sagen: "Kann gar nicht sein." Er _versteht_
eben, wie die Kisten fahren.

Ist das nicht ein Anreiz, sich _richtig_ mit Linux zu beschaeftigen?

</off topic>

Es gruesst
Peter

P.S. Wer daemlich mit h schreibt, ist daemlich. Wer naemlich mit h
schreibt, auch? (Es wird Zeit fuer einen zeitgemaessen Duden..)




Mehr Informationen über die Mailingliste linux-l