<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Athlan • Piotr Pelczar • blog programisty &#187; restart</title>
	<atom:link href="http://athlan.pl/tag/restart/feed/" rel="self" type="application/rss+xml" />
	<link>http://athlan.pl</link>
	<description>Napisać kod zrozumiały dla komputera potrafi byle głupek. Dobrzy programiści tworzą kod zrozumiały dla człowieka...</description>
	<lastBuildDate>Sun, 12 Jun 2011 16:43:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Automatyczny restart Apache</title>
		<link>http://athlan.pl/automatyczny-restart-apache/</link>
		<comments>http://athlan.pl/automatyczny-restart-apache/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 13:19:44 +0000</pubDate>
		<dc:creator>Athlan</dc:creator>
				<category><![CDATA[Planeta]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[crash]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[restart]]></category>
		<category><![CDATA[timeout]]></category>
		<category><![CDATA[wget]]></category>

		<guid isPermaLink="false">http://athlan.pl/?p=224</guid>
		<description><![CDATA[Wiele razy zdarzało mi się, że mój serwer padł całkowicie lub przerywał żądania. Wówczas był niedostępny, a zarobki generowane z serwisów diametralnie spadały. Co więcej&#8230; użytkownicy poczuli niestabilność maszyny. Dziś po odpowiedniej optymalizacji kodów aplikacji pady są rzadkością, ale wolę się ubezpieczyć przed niespodziewanym downem serwera. Problem można rozwiązać w prosty sposób: cyklicznie uruchamiany program [...]]]></description>
			<content:encoded><![CDATA[<p>Wiele razy zdarzało mi się, że mój serwer padł całkowicie lub przerywał żądania. Wówczas był niedostępny, a zarobki generowane z serwisów diametralnie spadały. Co więcej&#8230; użytkownicy poczuli niestabilność maszyny. Dziś po odpowiedniej optymalizacji kodów aplikacji pady są rzadkością, ale wolę się ubezpieczyć przed niespodziewanym downem serwera.</p>
<p>Problem można rozwiązać w prosty sposób: cyklicznie uruchamiany program <a href="http://pl.wikipedia.org/wiki/Bash">bash</a>&#8216;a przez <a href="http://pl.wikipedia.org/wiki/Cron_(Unix)">cron</a>a będzie odpowiadał za poprawne działanie usługi apache. Listing, który zaprezentuję łączy się z adresem url odwołującym się do naszego serwera za pomocą <a href="http://www.gnu.org/software/wget/wget.html"><code>wget</code></a>, a następnie wynik działania (response body) zapisze do pliku tymczasowego. Jeżeli plik istnieje oraz ma rozmiar niezerowy, oznacza to, że serwer działa poprawnie. Jeżeli plik nie istnieje, bądź jego wielkość jest równa zero z, oznacza to, że trzeba zrestartować usługę apache, bo nie odpowiada. Zaraz przed zakończeniem programu, plik tymczasowy powinien zostać usunięty. Pozwoliłem sobie opublikować mały <a href="http://athlan.pl/code/CheckApache">program służący do automatycznego restartu usługi apache</a>.</p>
<p>Aby nasz program poprawnie działał, trzeba zastanowić się nad trzema istotnymi rzeczami:</p>
<ol>
<li>Ile prób połączenia ma wykonać <code>wget</code> oraz jakie mogę być timeouty.</li>
<li>Czy adres url, do którego się odwołujemy będzie zawsze dostępny w przypadku poprawnego działania usługi apache.</li>
<li>Jaki powinien być interwał uruchamiania napisanego programu.</li>
</ol>
<p>Na moim serwerze program uruchamia się co minutę, próbuje połączyć się ze stroną dwa razy, a maksymalny czas oczekiwania na odpowiedź przy każdej z prób wynosi 10 sekund.</p>
<p>Program zapisany jest pod <code>/root/check_apache.sh</code>, a regułka uruchamiania w cronie wygląda następująco:</p>
<pre>* * * * *       bash /root/check_apache.sh</pre>
<p><span style="color: #999999;">Przedstawiony problem można rozwiązać na wiele sposobów, przedstawiłem ten najbardziej oczywisty.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://athlan.pl/automatyczny-restart-apache/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
