Как насчет использования бесконечного цикла:
#!/bin/bash
# startmusic.sh
while :; do
/usr/bin/mplayer http://www.audiostream.com
done
В случае сбоя mplayer
он будет просто перезапущен сценарием запуска ad infinitum .
Конечно, это означает, что вам придется сначала убить скрипт запуска, а затем mplayer
, если вы когда-нибудь захотите остановить его навсегда.
EDIT:
Простой скрипт, который никогда не завершится, за исключением случаев, когда происходит одно из следующих действий:
Это расторгнуто вами. Я предполагаю, что вы принимаете разумные меры предосторожности, чтобы не сделать это по ошибке - и если вы это сделаете, вы, вероятно, узнаете и исправите это самостоятельно. Если это , что критично, то вы должны запустить скрипт от имени другого пользователя, чтобы защитить его от большинства случайных ошибок.
Сбой сценария оболочки. Bash имеет , имеет несколько ошибок, как и любое другое программное обеспечение, но я очень сомневаюсь, что что-то такое простое, как цикл, заставит новое показать себя.
Что-то общесистемное происходит. Состояние нехватки памяти, аппаратная проблема или даже более распространенная потеря питания. В этом случае:
На какую бы систему вы ни смотрели сценарий, это, вероятно, также будет затронуто.
У вас есть более крупная рыба, которую нужно жарить - как, например, снова подключить систему.
Ты действительно хочешь что-нибудь автоматизировать, разбирая коробку с такими проблемами?
Использование cron для мониторинга процесса имеет две проблемы:
Не всегда легко получить правильное решение, особенно если, например, одновременно может быть запущено несколько экземпляров одной и той же программы (например, mplayer ).
Вы должны отключить запись cron перед интересующим процессом, если вы хотите отключить его по какой-либо причине.
Если вы действительно серьезно относитесь к перезапуску сценария запуска в случае <insert-favourite-catastrophe>
, то вам, вероятно, следует использовать подходящий демон мониторинга процессов, такой как:
http://ps -watcher.sourceforge.net /
http://mmonit.com/monit/
А если вы думаете, что не существует такого понятия, как перебор:
http://www.nagios.com/
http://www.opennms.org/