T
tom
Grünschnabel
hallo.
ich arbeite gerade an einem kleinen "kiosk-host"! also mp3player und surfstation.
der user bekommt beim booten alle programme zur verfügung gestellt und sollte sich eines - aus welchem grund auch immer - beenden soll es sofort wieder gestartet werden.
ich hab das mal ganz "quick & dirty" in perl geschrieben:
#########################################
#!/usr/bin/perl -w
$epid1 = "unset";
$xpid1 = "unset";
while (1) {
sleep 1; #perl is too fast...so we wait one sec
chomp ($epid = `pidof xclock`);
chomp ($xpid = `pidof xterm`);
print " 1 epid $epid epid1 $epid1 \n\n";
print " 1 Xpid $epid Xpid1 $epid1 \n\n";
until ($epid eq $epid1) {
system("xclock &");
sleep 1; #perl is too fast...so we wait one sec
chomp ($epid = `pidof xclock`);
chomp ($epid1 = `pidof xclock`);
print "epid $epid epid1 $epid1 \n\n";
}
until ($xpid eq $xpid1) {
system("xterm &");
sleep 1; #perl is too fast for system forks...so we wait one sec
chomp ($xpid = `pidof xterm`);
chomp ($xpid1 = `pidof xterm`);
print "Xpid $xpid Xpid1 $xpid1 \n\n";
}
}
#################################################
wie die meisten wahrscheinlich sehen is das mit einer while[1] schleife alles andere als die feine englische.
nun zu meiner frage.
es sollte doch möglich sein das ganze in C zu realisieren mit semaphore und messagequeues. also das ich irgendein SIG abfange und darauf reagiere.
leider sind meine C und auch C++ versuche schon sehr lange her und ich weiß nicht so recht wo ich anfangen soll.
kann mich vielleicht jemand in die richtige richtung schupsen oder mir einen link zu vergleichbaren dinge (doku, etc) geben?
oder hat einfach nur jemand einen tipp für mich. vielleicht intressierts ja jemand und findet verwendung für sowas. es würde mir natürlich auch freude machen an sowas mit mehr leuten zu "fummeln" .
lg
tom
ich arbeite gerade an einem kleinen "kiosk-host"! also mp3player und surfstation.
der user bekommt beim booten alle programme zur verfügung gestellt und sollte sich eines - aus welchem grund auch immer - beenden soll es sofort wieder gestartet werden.
ich hab das mal ganz "quick & dirty" in perl geschrieben:
#########################################
#!/usr/bin/perl -w
$epid1 = "unset";
$xpid1 = "unset";
while (1) {
sleep 1; #perl is too fast...so we wait one sec
chomp ($epid = `pidof xclock`);
chomp ($xpid = `pidof xterm`);
print " 1 epid $epid epid1 $epid1 \n\n";
print " 1 Xpid $epid Xpid1 $epid1 \n\n";
until ($epid eq $epid1) {
system("xclock &");
sleep 1; #perl is too fast...so we wait one sec
chomp ($epid = `pidof xclock`);
chomp ($epid1 = `pidof xclock`);
print "epid $epid epid1 $epid1 \n\n";
}
until ($xpid eq $xpid1) {
system("xterm &");
sleep 1; #perl is too fast for system forks...so we wait one sec
chomp ($xpid = `pidof xterm`);
chomp ($xpid1 = `pidof xterm`);
print "Xpid $xpid Xpid1 $xpid1 \n\n";
}
}
#################################################
wie die meisten wahrscheinlich sehen is das mit einer while[1] schleife alles andere als die feine englische.
nun zu meiner frage.
es sollte doch möglich sein das ganze in C zu realisieren mit semaphore und messagequeues. also das ich irgendein SIG abfange und darauf reagiere.
leider sind meine C und auch C++ versuche schon sehr lange her und ich weiß nicht so recht wo ich anfangen soll.
kann mich vielleicht jemand in die richtige richtung schupsen oder mir einen link zu vergleichbaren dinge (doku, etc) geben?
oder hat einfach nur jemand einen tipp für mich. vielleicht intressierts ja jemand und findet verwendung für sowas. es würde mir natürlich auch freude machen an sowas mit mehr leuten zu "fummeln" .
lg
tom