[sisyphus] OpenVPN: таймаут для пароля на сертификат
Michael A. Kangin
=?iso-8859-1?q?mak_=CE=C1_rsmu=2Eru?=
Вс Окт 12 10:36:24 MSD 2008
On 11 октября 2008 Nikolay A. Fetisov wrote:
> > Вот было бы круто, если бы и сервис openvpn, жаждя пароля, позволял
> > оставшимся сервисам запускаться в фоне параллельно.
>
> Для этого как минимум для начала потребуется переход на
> систему с параллельным запуском сервисов. Хотя и потом вряд ли
> получится.
Ну почему же...
> И опять же - данный момент не является чем-либо специфичным для
> OpenVPN. Аналогичные проблемы можно словить и со всем остальным, что
> использует сертификаты SSL.
Именно. Более того - любой сервис имеет потенциальную возможность встать в
позу зю и помешать нормальной инициализации системы. На моей памяти
еще /etc/init.d/ntpd крысятничал попыткой во что-бы то ни стало
синхронизировать время при старте, несмотря на недоступность сети. Ну там
хоть таймаут был минутки на три...
Я хочу сказать, что проблема более системная и общая, мои кривые ручонки вкупе
с OpenVPN и сертификатами с паролями лишь некоторые её проявления. :)
ИМХО нужен вотчдог на старт сервисов. Дающий некоторый разумный таймаут (да
хоть 5 минут, хоть пол-часа) на инициализацию, а затем прибивающий
неудачнегов.
В качестве мерзкого, но рабочего концепта могу предложить:
-------------
--- /etc/rc.d/init.d/functions.bak 2008-10-11 22:03:31 +0400
+++ /etc/rc.d/init.d/functions 2008-10-12 01:28:30 +0400
@@ -215,6 +215,11 @@
[ -z "$ANNOUNCE" ] || msg_starting "$DISPNAME"
# Actually start the daemon.
+ [ -n "$WATCHDOG_TIME" ] && {
+ /bin/sh -c "sleep $WATCHDOG_TIME; killall initlog" &
+ killer_pid=$!
+ }
+
if [ -z "$SU" ]; then
initlog $INITLOG_ARGS -n "$BASENAME" -c "start-stop-daemon
$FLAGS -- $*"
else
@@ -223,6 +228,8 @@
fi
STATUS=$?
+ [ -n "$WATCHDOG_TIME" ] && kill $killer_pid
+
if [ $STATUS = 0 ]; then
[ -z "$LOCKFILE" ] || touch "$LOCKFILE"
[ "$BOOTUP" != verbose ] || echo -n " $DISPNAME "
----------------
Переменную $WATCHDOG_TIME можно определить в /etc/sysconfig/init, например
WATCHDOG_TIME=1m
--
wbr, Michael A. Kangin
OIOS, RSMU
Подробная информация о списке рассылки Sisyphus