PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bash Befehl verzögern



fohnbit
26.05.17, 09:00
Hallo,

ich müßte in einem Script einen Befehl nach 5min ausführen.
Mittels Sleep 5m klappt das, aber das script soll nicht blockieren.

Man kann ja die 2 Befehle kombinieren ... kann mir jemand bitte sagen wie?
ich müßte "/bin/mount -o remount,rw /" 5 Minuten verzögert starten. Danke!

fork
26.05.17, 09:04
So zum Beispiel kann das funktionieren:


{ sleep 300 ; /bin/mount .... ; } &

Damit wird nach 5 Minuten der Mount ausgelöst. Das Programm läuft weiter.

In den meisten Fällen - in allen die ich selbst erlebt bzw. mir selbst gebaut habe - ist eine Wartezeit in einem Programm allerdings eine Krücke, weil man nicht weiss wie es richtig geht, bzw. keine Lust hat es richtig zu machen. Üblicherweise hat man hier und da später dann wieder Probleme mit solchen unsauberen Lösungen.

fohnbit
26.05.17, 09:16
Ok, vielen dank!

florian0285
26.05.17, 10:40
Theoretisch die andere Programmroutine in einem Prozess auslagern, die PID abgreifen, dann ein wait an entsprechender Stelle einfügen und danach mounten.
So kommt man ohne Zeitvorgabe aus und der Code läuft weiter.
Wenn der Code im Ausnahmefall mal mehr als 5 Minuten hängen bleibt schlägt dein mount fehl.

Dazu müsste man aber den Kot sehen [emoji51]