Leser: 25
1 2 3 4 5 6 7 8 9 10 11
#!/usr/bin/perl use strict; use warnings; print "Drücke <Enter>\n"; my $enter = <>; if($enter){ system "exit"; }
Can't exec "exit": No such file or directory at test line 10, <> line 1.
1 2 3 4 5 6 7
my $TIOCSTI = 0x5412; do 'sys/ioctl.ph' and $TIOCSTI = TIOCSTI(); for my $c (split //, "exit\n") { ioctl(STDIN, $TIOCSTI, $c) or die $!; }
xterm -e perl skript.pl
perl -e 'kill 9, getppid'
xterm -e "script.pl"
1 2 3 4 5 6 7 8 9 10
#!/usr/bin/perl use strict; use warnings; use Tk; my $mw = MainWindow -> new (); $mw -> minsize (200, 200); $mw -> OnDestroy (sub {print "\a"; $mw -> bell;}); $mw -> Button (-text => 'Beenden', -command => sub {exit;}) -> pack; MainLoop;
2009-03-22T07:50:37 meier19[...]
Das bisherige Ergebnis lautet, dass mancher Benutzer eines Programms dieses auch mit dem Terminal will öffnen können. [...] Ein Problem ergibt sich jedoch, wenn der Anwender das Programm auch - anstatt durch "Beenden" in der grafischen Benutzeroberfläche - durch Schliessen des Terminals beendet, und davon muss ich wohl ausgehen, dass ein Anwender, der das Programm aus dem Terminal starten will, es auch durch Schliessen des Terminals will - korrekt - beenden können.
[...]
Quote[...]
Zwar beendet sich mein Programm auch in diesem Fall insofern, als es das Fenster der grafischen Anwendungsoberfläche schliesst. Aber ein Vorgang, den ich zum Beenden vorgesehen habe, wird beim Beenden durch Schliessen des Terminals nicht mehr ausgeführt.
[...]
Der Grund weshalb ich zum Beenden des Programms etwas ausgeführt haben möchte, ist folgender (um auch allfällige Neugier zu befriedigen). Es soll vermieden werden, dass das Programm zweifach (oder mehrfach) gestartet wird, indem beim Starten des Programms ein Merker gesetzt - eine Datei erstellt - wird,
[...]
1 2 3 4 5 6 7
$SIG{HUP} = sub { exit; # exit beendet das Programm, führt aber zuerst die END-Blöcke aus }; END { unlink($lockfile) if defined $lockfile; }
2009-03-22T15:47:30 betterworldPIDs werden neu vergeben. Wenn es ein Programm mit der PID gibt, heißt das nichts.
2009-03-22T14:15:55 topeg...
Existiert die PID noch?
...
Wenn ja, enthält die KommandoZeile den eigenen Programmnamen?
wenn nein, es ist wahrscheinlich ein anderes Programm mit der selben PID, das Erste wurde unerwartet beendet.
...
2009-03-22T15:58:50 Linuxer2009-03-22T15:47:30 betterworldPIDs werden neu vergeben. Wenn es ein Programm mit der PID gibt, heißt das nichts.
Das hatte topeg aber berücksichtigt, oder seh ich das falsch?
2009-03-22T14:15:55 topeg...
Existiert die PID noch?
...
Wenn ja, enthält die KommandoZeile den eigenen Programmnamen?
wenn nein, es ist wahrscheinlich ein anderes Programm mit der selben PID, das Erste wurde unerwartet beendet.
...
sudo perl install
1 2 3
open(my $sufh, "|-", "su - perl install") or die "$!\n"; print $sufh "$passwd\n"; close($sufh) or die "$!";