起動時にicecast2サービスを開始する必要があります。
起動時に実行するために、crontab(ルート)に次の行を追加しました。
@reboot service icecast2 start >/home/pi/logs/icecast2.log 2>&1
再起動後、サービスは実行されず、次のエラーが発生します。
/bin/sh: 1: サービス: 見つかりません
だから私はこれに従いました。回答同様のスレッドで提案されているようにフルパスを追加しました。
@reboot service /usr/bin/icecast2 start >/home/pi/logs/icecast2.log 2>&1
ただし、次のエラーが発生します。
usr-bin-icecast2.service.mount を起動できません。 usr-bin-icecast2.service.mount デバイスが見つかりません。
メモ:
- これを入力すると
sudo service icecast2 start
機能します。 - ラズベリーパイでDebian Scratchを使用する
答え1
cron
サービスを開始するために使用する必要はありません。
必要なのはこれだけです:
systemctl enable icecast2
起動するたびに起動します。
答え2
プログラムは、引数1がディレクトリの実行可能ファイルでservice
あると想定しています。/etc/init.d/
crontabファイル内のicecast2実行可能ファイルへのパスを指定します。
Debian/Unix の init システムをお読みください。 AFAIK、Debian はsystemd
ブート時にサービスの開始を担当する事実上の標準 init システムを使用し、現在は次のようにサービスを制御するservice
systemd のラッパースクリプトを使用します。systemctl
Units
systemctl start icecast2
ただし、これは以前service
のinitシステム(.initと呼ばれる)と逆互換であるため、引き続き使用できます。sysvinit
service
systemctl
cronを介してサービス/デーモンを起動することはお勧めできません。事実上の標準は、より良い構造とより多くの機能を提供するシステムユニットを定義したり、カーネルが特定の実行/etc/rc.d
レベル(「開始状態」)に達したときにレガシー実行レベルスクリプトを使用することです。
上記の用語をオンラインで検索して楽しい時間を過ごしてください。