Запрос на подтверждение при вызове init, Mixalap, 04-Окт-12, 15:31 [смотреть все]Необходимо сделать, чтобы при вызове команды init 0 появлялся запрос на подтверждение: "Вы действительно хотите выключить копмутер?" Написал bash-скрипт с запросом подтверждения, прописал его в inittab для 0 уровня, чтоб при вызове init 0 запускался мой скрипт. Через локальную консоль всё работает.Но проблема, если выполнить init 0 подключившись по ssh, то запрос на подтверждение и считывание ответа (read) высвечивается всё равно на локальной консоли, а не в ssh подключении. Подскажите, как можно перенаправить вывод вопроса, а главное ввод ответа (yes|no) из ssh-терминала в локальную консоль?
|
- Запрос на подтверждение при вызове init, XAnder, 17:13 , 04-Окт-12 (1)
> Но проблема, если выполнить init 0 подключившись по ssh, то запрос на > подтверждение и считывание ответа (read) высвечивается всё равно на локальной консоли, > а не в ssh подключении. > Подскажите, как можно перенаправить вывод вопроса, а главное ввод ответа (yes|no) > из ssh-терминала в локальную консоль?Вот представьте себе, что одновременно активны несколько терминалов: обычные, иксовые, тот же ssh и т. п. А теперь попробуйте придумать способ (алгоритм), как выбрать, какому из них задать этот вопрос. Дело в том, что init-скрипты выполняются "сами по себе", они не знают, какой терминал инициировал смену уровня выполнения, и потому тупо общаются с локальной консолью. Да и терминал ли - может это ИБП обнаружил, что "электричество кончилось" и вырубает систему, а может и ещё что-нибудь. Я не говорю, что задача не имеет решения, я говорю, что она значительно хитрее, чем кажется.
- Запрос на подтверждение при вызове init, Mixalap, 18:05 , 04-Окт-12 (2)
> Вот представьте себе, что одновременно активны несколько терминалов: обычные, иксовые, > тот же ssh и т. п. А теперь попробуйте придумать способ > (алгоритм), как выбрать, какому из них задать этот вопрос. Дело в > том, что init-скрипты выполняются "сами по себе", они не знают, какой > терминал инициировал смену уровня выполнения, и потому тупо общаются с локальной > консолью. Да и терминал ли - может это ИБП обнаружил, что > "электричество кончилось" и вырубает систему, а может и ещё что-нибудь. Я > не говорю, что задача не имеет решения, я говорю, что она > значительно хитрее, чем кажется.Углубляясь в проблему, я всё больше это понимаю. =) Пробовал отслеживать PID процесса своего скрипта (после запуска init 0) и отправить ответ echo`ом ему в дескриптор 0. На консоли ответ отображается, но скрипт ответ не чувствует, только вводом с консоли. Думаю, какие ещё есть пути? Могу ли я сделать алиас init 6, который будет запускать мой скрипт, а мой скрипт уже запустит init 6(оригинальный)? Казалось бы тривиальная задача, но - ступор. А обезопасить себя и коллег нужно, т.к. грань между init 6 и 0 очень тонкая)). Особенно обидно, работая по удалёнке.
- Запрос на подтверждение при вызове init, pavlinux, 13:05 , 23-Окт-12 (3)
> Особенно обидно, работая по удалёнке.Не работай под рутом!!! - Запрос на подтверждение при вызове init, LSTemp, 05:10 , 24-Окт-12 (5)
> А обезопасить себя и коллег нужно, т.к. грань между init 6 и > 0 очень тонкая)). Особенно обидно, работая по удалёнке.ну так сделай скрипты poweroff, reboot, etc, которые сначало подтверждение спрашивают, а потом init N делают.. всяко проще.
- Запрос на подтверждение при вызове init, Аноним, 14:36 , 23-Окт-12 (4)
> Необходимо сделать, чтобы при вызове команды init 0 появлялся запрос на подтверждение: > "Вы действительно хотите выключить копмутер?" > Написал bash-скрипт с запросом подтверждения, прописал его в inittab для 0 уровня, > чтоб при вызове init 0 запускался мой скрипт. Через локальную консоль > всё работает.подмени инит: положи свой скрипт в /usr/bin, из него после подтверждения вызывай /sbin/init.
|