<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Раздел полезных советов: Скрипт для восстановления процессов на случай сбоя</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/12149.html</link>
    <description>Иногда случается, что при сбое (например при большой нагрузке или при временном отсутствии &lt;br&gt;каналов связи) важные демоны самостоятельно завершают свою работу.&lt;br&gt;Например может случаться вот такая ошибка&lt;br&gt;    squid&#091;703&#093;: Exiting due to repeated, frequent failures&lt;br&gt;Такое же может иногда случаться с IPA (/usr/ports/sysutils/ipa) и Apache.&lt;br&gt;&lt;br&gt;Чтобы автоматизировать отслеживание таких процессов можно создать&lt;br&gt;&#096;crontab -e&#096; задание (на примере Squid)&lt;br&gt;&lt;br&gt;   5,35 * * * * /usr/local/etc/rc.d/checksquid&lt;br&gt;&lt;br&gt;&lt;br&gt;./checksquid:&lt;br&gt;&lt;br&gt;   proc=&quot;squid&quot;&lt;br&gt;&lt;br&gt;   PIDFILE=/var/run/$&#123;proc&#125;.pid&lt;br&gt;   if &#091; -f $PIDFILE &#093; ; then&lt;br&gt;        PID=&#096;head $PIDFILE&#096;&lt;br&gt;        if &#091; &quot;x$PID&quot; != &quot;x&quot; &#093; &amp;&amp; kill -0 $PID 2&amp;gt;/dev/null ; then&lt;br&gt;            RUNNING=1&lt;br&gt;        else&lt;br&gt;            RUNNING=0&lt;br&gt;        fi&lt;br&gt;   else&lt;br&gt;        RUNNING=0&lt;br&gt;   fi&lt;br&gt;&lt;br&gt;   if &#091; $RUNNING -eq 0 &#093;; then&lt;br&gt;        echo &quot;Starting $proc again...&quot;&lt;br&gt;        /usr/local/etc/rc.d/$&#123;proc&#125;.sh start&lt;br&gt;        continue&lt;br&gt;   else&lt;br&gt;        echo &quot;$proc already running&quot;&lt;br&gt;   fi&lt;br&gt;&lt;br&gt;Нужно только убедиться что</description>

<item>
    <title>Скрипт для восстановления процессов на случай сбоя (cat)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/12149.html#15</link>
    <pubDate>Wed, 28 Oct 2009 05:07:15 GMT</pubDate>
    <description>А у меня вылезла такая ошибка cannot open /var/run/shutdown.pid. И не могу найти как поправить&lt;br&gt;</description>
</item>

<item>
    <title>Скрипт для восстановления процессов на случай сбоя (Denis)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/12149.html#14</link>
    <pubDate>Wed, 07 Oct 2009 09:58:45 GMT</pubDate>
    <description>забыл сказать, что для получения номера pid процесса в скрипте с #!bin/sh используется строка: sudo sh -c &apos;cat /var/run/squid/squid.pid&apos; или sh -c &apos;cat /var/run/squid/squid.pid&apos;&lt;br&gt;</description>
</item>

<item>
    <title>Скрипт для восстановления процессов на случай сбоя (Denis)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/12149.html#13</link>
    <pubDate>Wed, 07 Oct 2009 09:33:15 GMT</pubDate>
    <description>Как то у Вас тут все просто - раз два и сквид работает, а не учли двух деталей: 1)squid.pid имеет защиту - файл с подписью #!bin/sh запускается без прав root&apos;а и поэтому прочитать pid-файл не может, но есть решение использовать sudo, но тогда pid просто выводится на экран и никак в переменную не хочет записываться, в статье переменная указана, как PIDFILE - я вот не могу сообразить, как бы все таки присвоить переменной значение pid; 2) второе, что Вы не учли, что как раз таки демон может еще работать - сидеть в памяти, но через ps не выводится и pid-файл у него пуст или его вовсе нет и при попытке перезапуска (restart, reload или rotate) ругается, мол squid: error: copy no running - и здесь есть решение - последовательно выполнить: /etc/init.d/squid stop (останов демона, который спрятался где то в памяти), /etc/init.d/squid zap (что то вроде отладки), squid -z (пересоздание кеша), и только потом /etc/init.d/squid start. в некоторых случаях можно еще добавочно делать перед перекешированием killall -9 squid и c</description>
</item>

<item>
    <title>Скрипт для восстановления процессов на случай сбоя (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/12149.html#12</link>
    <pubDate>Thu, 01 Mar 2007 11:56:09 GMT</pubDate>
    <description>Спасибо, хороший скрипт.</description>
</item>

<item>
    <title>Скрипт для восстановления процессов на случай сбоя (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/12149.html#11</link>
    <pubDate>Thu, 08 Sep 2005 06:09:29 GMT</pubDate>
    <description>#!/bin/bash&lt;br&gt;&lt;br&gt;sleep 2&lt;br&gt;(/sbin/pidof squid &amp;#124;&amp;#124; /usr/sbin/squid)&amp;gt;/dev/null 2&amp;gt;&amp;1&lt;br&gt;$0 &amp;&lt;br&gt;&lt;br&gt;exit&lt;br&gt;</description>
</item>

<item>
    <title>Скрипт для восстановления процессов на случай сбоя (test)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/12149.html#10</link>
    <pubDate>Mon, 05 Sep 2005 19:33:09 GMT</pubDate>
    <description>эээ... а для сквида RunCache уже не решает?</description>
</item>

<item>
    <title>Скрипт для восстановления процессов на случай сбоя (Zulu)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/12149.html#9</link>
    <pubDate>Mon, 05 Sep 2005 12:45:13 GMT</pubDate>
    <description>Ой посмешил... &lt;br&gt;1) а следить?&lt;br&gt;2) А нарваться на шелл-скрипт с именем &quot;blah-squid-blah&quot;?</description>
</item>

<item>
    <title>Скрипт для восстановления процессов на случай сбоя (s2)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/12149.html#8</link>
    <pubDate>Mon, 05 Sep 2005 09:10:22 GMT</pubDate>
    <description>так проще!&lt;br&gt;#!bin/sh&lt;br&gt;ps ax &amp;#124;grep squid &amp;#124;grep -v grep&lt;br&gt;if expr $? = 1&lt;br&gt;then&lt;br&gt;echo &quot;Squid Starting&quot;&lt;br&gt;squid&lt;br&gt;else&lt;br&gt;echo &quot;Squid Alredy started&quot;&lt;br&gt;fi</description>
</item>

<item>
    <title>Скрипт для восстановления процессов на случай сбоя (Yurik)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID3/12149.html#7</link>
    <pubDate>Mon, 05 Sep 2005 06:45:54 GMT</pubDate>
    <description>&amp;gt; бывают случаи, когда демон отвалится,&lt;br&gt;&amp;gt; а pid остаётся.&lt;br&gt;именно это и проверяет kill -0 $PID 2&amp;gt;/dev/null</description>
</item>

</channel>
</rss>
