>Что это за бред? Какой еще нахрен respawn? Какой терминал, какой враппер?
>echo "while \! appname; do done" >> ~/.xsession
while (:) do appname; sleep X; done
это и есть техника, называемая respawn (может Вы думаете что respawn - фирменная технология init? )
Если appname завершилось штатно и возратило 0, приложение будет перезапущено.
Если приложение завершилось аварийно, то оператор увидит перед собой виртуальную консоль.
Будете учить его набирать на клавиатуре startx в английском?
Можно конечно применить:
set +e; while (:) do appname; done; set -e
или
while (:) do appname || true; done;
Прим.: это нужно так как на .Xsession обычно стоит флаг errexit (set -e).
Но тогда минусов ещё больше.
Представьте что случилось нечто очень плохое (но возможное).
Например, сбились конфиги и закрылось/вылетело приложение.
Тогда мы получаем вечный цикл с загрузкой CPU 100%.
В результате:
1) человек, сидящий за монитором, понимает что произошла Ж, но сделать ничего не может
и даже не видит ошибки (это для чего xterm)
2) CPU = 100%, а если приложение по старту соединяется с базой сетевой или сервером - можно словить лёгкий DOS (это для чего таймаут)
3) исправить ситуацию можно только админ по сети, или непосредственно придя на объект
> Что это за бред?
У кого?
Впрочем, и Ваш совет вполне работоспособен, уважаемый Аноним.
Только напишите своё имя, чтобы люди могли выказать Вам благодарность ;-)
|