Hallo zusammen,
hat sich schon jemand darueber beschwert, dass zwischen 4.4 und 4.7
die /bin/sh zerdengelt wurde?
Konkret ist das handling von sigalarm-terminations so uebel, dass
shellscripte nicht mehr laufen.
Gegeben sei folgendes Binary:
----------------------
#include <unistd.h>
main() {
alarm(2);
sleep(3);
}
----------------------
Auf 4.4 sieht das dann so aus:
----------------------
$ set -x
$ ./a.out ; echo `ls | wc -l'
+ ./a.out
Alarm clock
+ ls
+ wc -l
+ echo 2
2
$
-----------------------
Und das erscheint mir richtig. Auf 4.7 dagegen sieht es so aus:
-----------------------
$ set -x
$ ./a.out ; echo `ls | wc -l`
+ ./a.out
+ ls+ wc
-l
+ echo 2 Alarm clock
Alarm clock
2 Alarm clock
------------------------
HILFE!!! WAS TUT DENN DIE "Alarm clock" IM OUTPUT VON DER SUBSHELL????
Konkret fliegt mir damit naemlich mein sucknews immer wieder um die
Ohren. Der scheint einen alarm zu setzen; und nachdem er fertig ist,
pruefe ich, ob er neue news geholt hat:
if test `ls $BATCHDIR/batch.${nnrphost}* 2> /dev/null | wc -l` -gt 0
Und das sieht dann manchmal im Logfile so aus:
+ wc -l
+ ls /var/spool/news/in.suckb/batch.news.t-online.de
+ test 1 Alarm clock -gt 0
Alarm clock
test: 1: unexpected operator
... womit dann natuerlich meine neuen News futsch sind.:-((
Ich hab nach bugreports gesucht und nix gefunden. Ich hab
in der Repository geschaut und nix gefunden, was darauf hindeutet,
dass das Problem inzwischen gefixt wurde. Und ich kann fast nicht
glauben, dass sowas lange undetected bleibt.
Waer also nett, wenn mal jemand mit 4.7 das kurz reproduzieren
koennte.
Ansonsten: wie kann man eigentlich diese schlauen Meldungen
("Killed", "Alarm clock", etc.) loswerden? Ich meine, zumindest in
Shellscripts will ich sowas nicht (wenn da ein Prozess durch signal
beendet, dann ist das Absicht), deswegen nehme ich da ja auch
/bin/sh und keine komfortable Bloatshell.
Gruss
PMc
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sat 15 Mar 2003 - 01:41:25 CET