Ich habe einige Ksh-Skripte geschrieben, etwa 6 Skripte und jeder sind etwa 50 Zeilen außer einer, die 300 Zeilen lang ist. Dies ist geschrieben, um riesige Datendateien zu verarbeiten, etwa 207 MB groß. Beim Ausführen des Skripts bleibt es manchmal hängen und endet nicht. Menschliche Unterbrechung ist erforderlich. In der Produktionsumgebung möchte ich, dass es automatisch ausgeführt wird und automatisch beendet werden sollte, wenn Probleme ohne menschliche Unterbrechung auftreten. Wenn Probleme mit einer Datei auftreten, muss das Skript beendet und die nächste Datei gestartet werden. Wie kann es sich selbst beenden, wenn es stecken bleibt .. d. H. Es muss stecken bleiben.Wie kann ich ein Ksh-Skript beenden, wenn irgendwelche Probleme?
-4
A
Antwort
0
Ich nehme an, dass die Probleme nur dadurch entstehen, dass das Skript zu lange dauert. In diesem Fall wird ein einfaches Skript, das den Prozess nach einer Auszeit tötet, soll ausreichend sein:
#!/bin/bash
# Killersrcipt
PID=$1
TIME=$2
typeset -i i
i=0
while [ $i -lt $TIME ] ; do
if ps $PID > /dev/null ; then
i=$i+1
sleep 1
else
exit 0
fi
done
kill $PID
Ihr Workflow dann so etwas wie sein würde:
#!/bin/bash
process_1 &
killerscript $! 60
process_2 &
killerscript $! 30
...
Wenn Sie Fragen zu erkennen, haben andere Möglichkeiten Ihre Prozesse können Sie einfach in Ihrem Killerskript in die Schleife einfügen.
Verwandte Themen
- 1. Wenn ich ein Makefile schreibe, wie kann ich einen Subprozess beim Beenden beenden?
- 2. Kann das Label "javascript:" irgendwelche Probleme verursachen?
- 3. Wie kann ich ein Python-Skript in Java beenden?
- 4. Wie sqlplus beenden, wenn ein Fehler passiert
- 5. Wie kann ich Schleifen in Xcode beenden?
- 6. String.Format gegen String.Format. Irgendwelche Probleme?
- 7. Wie kann ich eine CodeMirror-Instanz beenden?
- 8. Wie kann ich eine PHP-Sitzung beenden?
- 9. NSThread beenden, wenn app beenden
- 10. Wie kann ich den Android-Emulator beenden, wenn erzwungenes Beenden nicht funktioniert?
- 11. Wie kann ich ASPNETDB.MDF in LocalDB beenden?
- 12. Wie kann ich Thread mit Aktivität beenden?
- 13. Wie kann ich die Konsole beenden?
- 14. JavaServiceWrapper auf 64bit Linux, irgendwelche Probleme?
- 15. Wie kann ich das Programm beenden?
- 16. Wie kann ich GC_CONCURRENT so häufig beenden?
- 17. Wie kann ich den Vollbildmodus Immersive beenden?
- 18. Sequel in Verbindung mit ActiveRecord irgendwelche Probleme?
- 19. kann jemand irgendwelche Probleme mit diesem Anwendungsfall sehen
- 20. Probleme, wenn ich Homebrew
- 21. Ich kann Vollbild nicht beenden
- 22. Wie kann ich Probleme mit der Hintergrundfarbe vermeiden, wenn ich ein Bild oder etwas anderes animiere?
- 23. rekursive Funktion Beenden, wenn ein dynamischer Zustand
- 24. Ich habe Probleme mit Arrays in meinem Code. Irgendwelche Vorschläge?
- 25. Wie kann ich einen Prozess in ActiveState Perl sanft beenden?
- 26. Wie kann ich Android-App programmgesteuert beenden, wenn die Home-Taste gedrückt wird?
- 27. Wie kann man ein Modul beenden, bevor es geparst ist?
- 28. Wie bekomme ich Java zum Beenden, wenn Piped-to-Head
- 29. Wie kann ich die aktuelle Aktivität beenden, wenn ich eine Suche in Android durchführe?
- 30. Wie kann ich die WinForms-Anwendung ordnungsgemäß beenden, wenn ich das Debuggen in VS stoppe?
Einfach: Fix, was auch immer der Fehler in Ihrem Skript ist! – John3136
Stimmt, ich mache das schon .. Aber manchmal kann etwas Unerwartetes passieren. Ich kann nicht jedes Problem vorhersehen. Gibt es irgendeinen Weg? – user6613676
Willst du eine Art Timeout für einen Befehl, dauert es zu lange? – chepner