jobverwaltung (im nachhinein)
-
gibt es eine moeglichkeit, befehlszeilen nach dem ausfuehren noch zu aendern?
beispiel(dummes):
# sleep 10; rm -rf /
uff. wie koennte ich jetzt wenn ich die zeile schon eingegeben(und enter gedrueckt) haette noch die ausfuehrung von rm aufhalten?beispiel(realistisch):
$ make grossesprogramm
nach ner weile werd ich muede und wuensche mir ich haette
$ make grossesprogramm; shutdown -h now
geschrieben.geht das irgendwie, nachtraeglich die befehlszeilen zu aendern?
danke.
-
STRG+C drücken und dann einfach deinen Wunsch Befehl dahinter noch angeben.
Es werden dann alle Dateien die schon kompiliert worden sind übersprungen und da weiter gemacht wo du STRG+C gedrückt hast.
Viel Spass!
-
*lol* Ja, vor allem beim "sleep 10; rm -rf /" viel Spaß mit dem strg-c drücken!
Grundsätzlich würde ich eher "sleep 10 && rm -rf /" machen, weil ich dann in Sekunde 9 immer noch strg-c drücken könnte ohne dass meine Root-Partition flöten geht.
-
ich glaub nicht, dass man das im Nachhinein ändern kann. Bei 1. hilft wohl nur ein schnelles ausmachen des Computers, bei 2. kann man ja cC machen und dann make neustarten, da make dann ja ab der Unterbrechung weiterkompiliert
-
danke schonmal.
das problem mit rm war eher aus der luft gegriffen.
realistisch ist aber, dass irgendein programm etwas lange abarbeitet.
make liesse sich zwar unterbrechen und neu starten, aber downloads z.b. lassen sich ja nicht immer resumen.gibt es vielleicht ein programm, dem man die pid eines anderen uebergibt, das dann ein kommando(z.b. shutdown) ausfuehrt sobald sich das programm beendet?
-
(bei 1. sollte es auch helfen, einfach die Shell zu killen, obwohl ich lieber auf den Aus Knopf drücken würde, bis man da mit ps die pid gefunden hatt, sind die 10s nachher um ;))
kannst du dir ja selber schreiben
so ungefähr
#!/bin/sh $PID=$1 $DO="shutdown -h now" ps -p $PID while $? do ps -p $PID done `$DO`
(auch wenn mich dafür jeder Shell Script Programmierer töten würde ;))
-
zumindest i.d bash:
STRG+Z unterbricht den gestarteten prozess und gibt dir die console zurück, du kannst dann den job mit 'fg' (foreground) wieder 'resumem' oder mit 'bg' (background) im hintergrund weiterarbeiten lassen (genau wie './mein_prog &').
ebenfalls hilfreich kann dabei 'disown' sein - es löst den gestarteten prozess von terminal in dem es gestaret wurde, d.h. man kann sich ausloggen und der prozess läuft weiter (ähnlich 'nohup') - allerdings kann man danach den prozess nicht mehr als job managen (also z.b. wie oben beschrieben anhalten usw.).
siehe 'man bash' -> job control
gruss
-
@murdock: jo danke, aber das hatte ich eigentlich nicht gesucht.
zu kingruedis \1: das funktioniert leider nicht.
ich kenne mich leider kaum mit shell-scripten aus..
das einzige, was mir fehlerhaft erscheint ist das dollar symbol beim zuweisen an eine variable.
aber auch wenn man das aendert, laeuft das script nicht.