zulunda Geschrieben 10. Juni 2005 Geschrieben 10. Juni 2005 hallo, ich muss eine shell programmieren die die festplatte auslastet. dabei muss ich die dauer und zeit für eine pause eingeben können. mit der pause habe ich kein problem aber mit der dauer wie lange das programm laufen soll: #!/bin/bash echo Bitte Dauer eingeben: read dauer echo Bitte Dauer der Pause eingeben: read pause 345678901234567890 s=s+s+s+s+s+s+s+s sleep $pause ich würde mich sehr über hilfe von euch freuen. grüsse zulunda
giftclown Geschrieben 10. Juni 2005 Geschrieben 10. Juni 2005 Hi, Du könntest nach Ablauf der gewünschten Dauer ein kill -SIGSTOP an die Prozess-ID schicken. Mit kill -SIGCONT läßt Du den Prozess dann weiterarbeiten (, z.B. sobald die Pause abgelaufen ist). Grüße, giftclown
zulunda Geschrieben 10. Juni 2005 Autor Geschrieben 10. Juni 2005 gebe ich dann nach die befehl die zeit ein, nach der gestoppt werden soll. ich habe echt keine ahnung wie das gehen soll. danke
zulunda Geschrieben 10. Juni 2005 Autor Geschrieben 10. Juni 2005 ich hab`s geschafft trotzdem danke.
giftclown Geschrieben 10. Juni 2005 Geschrieben 10. Juni 2005 in etwa so: # Kommando, das die Festplatte auslastet aufrufen und in den Hintergrund schicken befehl argumente & # Prozess-ID des aufgerufenen Kommandos herausfinden PIDBEFEHL=`pgrep befehl` # Dauer, die das Kommando die Festplatte auslasten soll abwarten; z.B. 10 Sekunden sleep 10 # Nach 10 Sekunden den Prozess anhalten kill -SIGSTOP $PIDBEFEHL # hier irgendetwas machen, während der Prozess angehalten ist /bin/true # Prozess weiterlaufen lassen kill -SIGCONT $PIDBEFEHL --- Was Du noch machen solltest: In der man-page zum Befehl, der die Festplatte auslastet, prüfen, wie der Befehl auf Signale reagiert, sicherstellen, daß "pgrep" keine anderen Prozesse in der Prozessliste matcht. Wenn der Prozess nicht pausieren sondert beendet werden soll, dann SIGTERM oder SIGKILL als Signal schicken. Hoffe, es ist klarer geworden. Gruß, giftclown
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden