ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
From: "Michael A. Kangin" <mak@rsmu.ru>
To: ALT Linux Sisyphus discussions <sisyphus@lists.altlinux.org>
Subject: Re: [sisyphus] OpenVPN: таймаут для пароля на сертификат
Date: Sun, 12 Oct 2008 10:36:24 +0400
Message-ID: <200810121036.24201.mak@rsmu.ru> (raw)
In-Reply-To: <20081011173220.5fab8fb4@v3405.naf.net.ru>

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

  parent reply	other threads:[~2008-10-12  6:36 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-11 12:15 Michael A. Kangin
2008-10-11 12:48 ` Nikolay A. Fetisov
2008-10-11 13:05   ` Michael A. Kangin
2008-10-11 13:32     ` Nikolay A. Fetisov
2008-10-11 13:36       ` Mikhail Gusarov
2008-10-12  6:36       ` Michael A. Kangin [this message]
2008-10-11 12:50 ` Sergey Lebedev
2008-10-11 12:59   ` Michael A. Kangin
2008-10-14 17:06     ` Mike Almateia

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200810121036.24201.mak@rsmu.ru \
    --to=mak@rsmu.ru \
    --cc=sisyphus@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git