The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Запрос на подтверждение при вызове init"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Запрос на подтверждение при вызове init"  +1 +/
Сообщение от Mixalap email(ok) on 04-Окт-12, 15:31 
Необходимо сделать, чтобы при вызове команды init 0 появлялся запрос на подтверждение: "Вы действительно хотите выключить копмутер?"
Написал bash-скрипт с запросом подтверждения, прописал его в inittab для 0 уровня, чтоб при вызове init 0 запускался мой скрипт. Через локальную консоль всё работает.

Но проблема, если выполнить init 0 подключившись по ssh, то запрос на подтверждение и считывание ответа (read) высвечивается всё равно на локальной консоли, а не в ssh подключении.
Подскажите, как можно перенаправить вывод вопроса, а главное ввод ответа (yes|no) из ssh-терминала в локальную консоль?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Запрос на подтверждение при вызове init"  +/
Сообщение от XAnder (ok) on 04-Окт-12, 17:13 
> Но проблема, если выполнить init 0 подключившись по ssh, то запрос на
> подтверждение и считывание ответа (read) высвечивается всё равно на локальной консоли,
> а не в ssh подключении.
> Подскажите, как можно перенаправить вывод вопроса, а главное ввод ответа (yes|no)
> из ssh-терминала в локальную консоль?

Вот представьте себе, что одновременно активны несколько терминалов: обычные, иксовые, тот же ssh и т. п. А теперь попробуйте придумать способ (алгоритм), как выбрать, какому из них задать этот вопрос. Дело в том, что init-скрипты выполняются "сами по себе", они не знают, какой терминал инициировал смену уровня выполнения, и потому тупо общаются с локальной консолью. Да и терминал ли - может это ИБП обнаружил, что "электричество кончилось" и вырубает систему, а может и ещё что-нибудь. Я не говорю, что задача не имеет решения, я говорю, что она значительно хитрее, чем кажется.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Запрос на подтверждение при вызове init"  +/
Сообщение от Mixalap email(ok) on 04-Окт-12, 18:05 
> Вот представьте себе, что одновременно активны несколько терминалов: обычные, иксовые,
> тот же ssh и т. п. А теперь попробуйте придумать способ
> (алгоритм), как выбрать, какому из них задать этот вопрос. Дело в
> том, что init-скрипты выполняются "сами по себе", они не знают, какой
> терминал инициировал смену уровня выполнения, и потому тупо общаются с локальной
> консолью. Да и терминал ли - может это ИБП обнаружил, что
> "электричество кончилось" и вырубает систему, а может и ещё что-нибудь. Я
> не говорю, что задача не имеет решения, я говорю, что она
> значительно хитрее, чем кажется.

Углубляясь в проблему, я всё больше это понимаю. =)
Пробовал отслеживать PID процесса своего скрипта (после запуска init 0) и отправить ответ echo`ом ему в дескриптор 0.
На консоли ответ отображается, но скрипт ответ не чувствует, только вводом с консоли.
Думаю, какие ещё есть пути?
Могу ли я сделать алиас init 6, который будет запускать мой скрипт, а мой скрипт уже запустит init 6(оригинальный)?
Казалось бы тривиальная задача, но - ступор.
А обезопасить себя и коллег нужно, т.к. грань между init 6 и 0 очень тонкая)). Особенно обидно, работая по удалёнке.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Запрос на подтверждение при вызове init"  +/
Сообщение от pavlinux (ok) on 23-Окт-12, 13:05 
> Особенно обидно, работая по удалёнке.

Не работай под рутом!!!

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Запрос на подтверждение при вызове init"  +/
Сообщение от LSTemp (ok) on 24-Окт-12, 05:10 
> А обезопасить себя и коллег нужно, т.к. грань между init 6 и
> 0 очень тонкая)). Особенно обидно, работая по удалёнке.

ну так сделай скрипты poweroff, reboot, etc, которые сначало подтверждение спрашивают, а потом init N делают.. всяко проще.


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Запрос на подтверждение при вызове init"  +/
Сообщение от Аноним (??) on 23-Окт-12, 14:36 
> Необходимо сделать, чтобы при вызове команды init 0 появлялся запрос на подтверждение:
> "Вы действительно хотите выключить копмутер?"
> Написал bash-скрипт с запросом подтверждения, прописал его в inittab для 0 уровня,
> чтоб при вызове init 0 запускался мой скрипт. Через локальную консоль
> всё работает.

подмени инит: положи свой скрипт в /usr/bin, из него после подтверждения вызывай /sbin/init.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру