zulunda Geschrieben 10. Juni 2005 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
giftclown Geschrieben 10. Juni 2005 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
zulunda Geschrieben 10. Juni 2005 Autor Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
zulunda Geschrieben 10. Juni 2005 Autor Teilen Geschrieben 10. Juni 2005 ich hab`s geschafft trotzdem danke. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
giftclown Geschrieben 10. Juni 2005 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.