<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Systemd on Bruce on AI Engineering</title><link>http://www.heyuan110.com/tags/systemd/</link><description>Recent content in Systemd on Bruce on AI Engineering</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sun, 07 Oct 2018 00:35:04 +0800</lastBuildDate><atom:link href="http://www.heyuan110.com/tags/systemd/index.xml" rel="self" type="application/rss+xml"/><item><title>Supervisor Guide: Installation, Configuration, Troubleshooting &amp; Comparison with systemd</title><link>http://www.heyuan110.com/posts/linux/2018-10-07-supervisor/</link><pubDate>Sun, 07 Oct 2018 00:35:04 +0800</pubDate><guid>http://www.heyuan110.com/posts/linux/2018-10-07-supervisor/</guid><description>&lt;p&gt;Supervisor (&lt;a href="http://supervisord.org"&gt;supervisord.org&lt;/a&gt;) is a Python-based process management tool that makes it easy to start, stop, and restart long-running processes — not just Python programs, but any executable. It can manage individual processes or bring up entire groups of services at once, which is especially useful for recovering from server failures quickly.&lt;/p&gt;
&lt;p&gt;Here is the quick summary if you are short on time:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you need to manage &lt;strong&gt;multiple application processes&lt;/strong&gt; (queue workers, cron-like tasks, scrapers, utility scripts), Supervisor remains an excellent choice.&lt;/li&gt;
&lt;li&gt;If you want native OS-level service management with deep Linux integration, go with &lt;strong&gt;systemd&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;For Node.js-only deployments, &lt;strong&gt;PM2&lt;/strong&gt; works well, but Supervisor is better suited for managing processes across different languages.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="supervisor-vs-systemd-vs-pm2--choosing-the-right-tool"&gt;Supervisor vs systemd vs PM2 — Choosing the Right Tool&lt;a href="#supervisor-vs-systemd-vs-pm2--choosing-the-right-tool" class="anchor" aria-hidden="true"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
 stroke-linecap="round" stroke-linejoin="round"&gt;
 &lt;path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"&gt;&lt;/path&gt;
 &lt;line x1="8" y1="12" x2="16" y2="12"&gt;&lt;/line&gt;
 &lt;/svg&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Criteria&lt;/th&gt;
 &lt;th&gt;Supervisor&lt;/th&gt;
 &lt;th&gt;systemd&lt;/th&gt;
 &lt;th&gt;PM2&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Best for&lt;/td&gt;
 &lt;td&gt;Multi-process management (polyglot)&lt;/td&gt;
 &lt;td&gt;System-level service management&lt;/td&gt;
 &lt;td&gt;Node.js application management&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Learning curve&lt;/td&gt;
 &lt;td&gt;Moderate&lt;/td&gt;
 &lt;td&gt;Steep&lt;/td&gt;
 &lt;td&gt;Low&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Boot startup&lt;/td&gt;
 &lt;td&gt;Supported&lt;/td&gt;
 &lt;td&gt;Native (strongest)&lt;/td&gt;
 &lt;td&gt;Supported&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Log management&lt;/td&gt;
 &lt;td&gt;Basic&lt;/td&gt;
 &lt;td&gt;Strong&lt;/td&gt;
 &lt;td&gt;User-friendly&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Target audience&lt;/td&gt;
 &lt;td&gt;Ops / backend / multi-script setups&lt;/td&gt;
 &lt;td&gt;Linux ops teams&lt;/td&gt;
 &lt;td&gt;Node.js developers&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;Practical advice: If your production environment already uses systemd extensively, stick with systemd. When you need to quickly unify process management across multiple languages and services, Supervisor is still a cost-effective solution.&lt;/p&gt;</description></item></channel></rss>