<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Runit on Ivon's Blog</title><link>https://ivonblog.com/ja-jp/tags/runit/</link><description>Recent content in Runit on Ivon's Blog</description><generator>Hugo -- gohugo.io</generator><language>ja-jp</language><managingEditor>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</managingEditor><webMaster>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</webMaster><copyright>Ivon's Blog (ivonblog.com）の記事のシェアを歓迎します。記事を引用する際は元のURLを明記し、CC BY-NC-ND 4.0ライセンスに従ってください。商用利用の場合は、私宛にメールでご連絡ください。</copyright><lastBuildDate>Mon, 18 Nov 2024 06:00:00 +0800</lastBuildDate><atom:link href="https://ivonblog.com/ja-jp/tags/runit/index.xml" rel="self" type="application/rss+xml"/><item><title>Termux-servicesとTermux:Bootで自動起動サービスを管理する</title><link>https://ivonblog.com/ja-jp/posts/termux-services/</link><pubDate>Mon, 18 Nov 2024 06:00:00 +0800</pubDate><author>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</author><guid>https://ivonblog.com/ja-jp/posts/termux-services/</guid><description>&lt;!-- Co-translated by ChatGPT --&gt;
&lt;p&gt;Manage auto-startup services in Termux.&lt;/p&gt;
&lt;p&gt;ここでは2つのTermux拡張機能を紹介します。1つ目はTermux-servicesで、Termuxアプリを起動した後のサービスを管理します。2つ目はTermux:Bootで、Androidの起動後にTermuxのサービスを自動起動するよう設定します。&lt;/p&gt;
&lt;p&gt;なぜTermux-servicesが必要なのでしょうか。&lt;/p&gt;
&lt;p&gt;Termuxでサービスを起動・停止したい、アプリを開いた後にサービスを自動起動したい。しかしTermuxにはSystemdがありません。自動起動したいサービスを&lt;code&gt;~/.bashrc&lt;/code&gt;や&lt;code&gt;~/.profile&lt;/code&gt;に書き込み、停止したいときはプロセスを探して&lt;code&gt;kill&lt;/code&gt;コマンドで止めるしかないのでしょうか。&lt;/p&gt;
&lt;p&gt;こういう時にTermux-servicesは便利なツールになります。&lt;/p&gt;
&lt;p&gt;Termux-servicesを使うと、一連のコマンドでサービスの実行を制御でき、自由にサービスを起動・停止できます。常駐プログラム（daemon）を必要とするソフトウェアには特に便利です。たとえば&lt;code&gt;sshd&lt;/code&gt;、&lt;code&gt;apache2&lt;/code&gt;、&lt;code&gt;bitcoin&lt;/code&gt;などはTermux-services経由で、Termuxアプリを開いた後に自動起動できます。&lt;/p&gt;</description></item><item><title>Termux prootでsystemctlコマンドが使えない場合の解決策</title><link>https://ivonblog.com/ja-jp/posts/termux-systemd-issues/</link><pubDate>Sat, 31 Aug 2024 23:00:00 +0800</pubDate><author>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</author><guid>https://ivonblog.com/ja-jp/posts/termux-systemd-issues/</guid><description>&lt;!-- Co-translated by ChatGPT --&gt;
&lt;p&gt;Systemdはinitプログラムの一種です。ほぼすべてのLinuxディストリビューションがSystemdを使ってシステムサービスを管理しており、よく使うコマンドには&lt;code&gt;systemctl&lt;/code&gt;や&lt;code&gt;journalctl&lt;/code&gt;などがあります。&lt;/p&gt;
&lt;p&gt;しかしTermuxではSystemdを使えません。Termuxのproot-distroやchrootコンテナ環境で&lt;code&gt;systemctl start&lt;/code&gt;関連のコマンドを実行すると、次のエラーが出ます：&lt;code&gt;System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;これはコンテナ環境がSystemdをサポートしていないためです。&lt;/p&gt;
&lt;p&gt;実のところ、これには根本的な解決策はありません。Termux開発チームがMicrosoft WSLのようにSystemdを動かす方法を用意しない限り無理です。ただし、この問題を回避する代替案はいくつかあります。&lt;/p&gt;

&lt;h2 class="relative group"&gt;方法1：実行ファイルのパスから直接プログラムを起動する
 &lt;div id="方法1実行ファイルのパスから直接プログラムを起動する" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%96%b9%e6%b3%951%e5%ae%9f%e8%a1%8c%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%ae%e3%83%91%e3%82%b9%e3%81%8b%e3%82%89%e7%9b%b4%e6%8e%a5%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%82%92%e8%b5%b7%e5%8b%95%e3%81%99%e3%82%8b" aria-label="アンカー"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;まず知っておくべきなのは、Systemdはシステムサービスを管理するinitプログラムにすぎないということです。Linuxの起動後にプログラムを起動し、ユーザーがプログラムを開始/停止できるようにする役割を担っています。ただし、単に特定のプログラムを起動するだけなら、実は&lt;code&gt;systemctl&lt;/code&gt;に依存する必要はありません。&lt;/p&gt;</description></item></channel></rss>