Hallo, Am Tue, 31 Jan 2006, Andre Tann schrieb:
David Haller, Dienstag, 31. Januar 2006 03:20:
Dann ginge das auch ueber die alias-Datei [...] ml "|/usr/bin/procmail -t"
Als welcher User wird denn in so einem Fall procmail aufgerufen,
Als 'ml' denke ich.
sprich: welche .procmailrc wird denn angewendet?
Kannst du beim Aufruf von procmail auch direkt angebe. Es muesste aber die ~ml/.procmailrc sein.
Wieso |exec..., und nicht einfach |/usr/bin/procmail? So hatte ich das immer, und es tut auch.
help exec
Hatte ich schon gelesen, aber ich versteh den Unterschied trotzdem nicht :(
$ ( /bin/echo "foo"; /bin/echo "bar"; ) foo bar $ ( exec /bin/echo "foo"; /bin/echo "bar"; ) foo Bei exec ersetzt sich die shell durch das aufgerufene Programm, ansonsten forkt sie und diese geforkte shell ersetzt sich dann. Die aufrufende shell laeuft weiter. Sinnvoll ist exec z.B. bei wrapperscripten. Schau z.B. mal in die ~/.xinitrc: ==== [Machwas] # # finaly start the window manager # exec $WINDOWMANAGER # call failsafe [Fehlerbehandlung falls $WINDOWMANAGER nicht aufgerufen werden konnte, wenn exec aufgerufen wird laeuft das script also nicht weiter] ==== In der bash hat exec aber auch noch eine weitere Funktion Beschrieben ab "If FILE is not specified, ..." Etwas mehr zur erstgenannten Funktion von exec steht in 'man 3 exec'. Die bash verwendet 'execve'. $ strace -eprocess /bin/bash -c 'exec /bin/echo "foo"' execve("/bin/bash", ["/bin/bash", "-c", "exec /bin/echo \"foo\""], [/* 97 vars */]) = 0 execve("/bin/echo", ["/bin/echo", "foo"], [/* 95 vars */]) = 0 foo _exit(0) = ? HTH, -dnh -- 65: Internet-Boom Schwachsinn (Theo Lieven)