サービスコマンドcronが見つかりません

サービスコマンドcronが見つかりません

起動時に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 システムを使用し、現在は次のようにサービスを制御するservicesystemd のラッパースクリプトを使用します。systemctlUnits

systemctl start icecast2

ただし、これは以前serviceのinitシステム(.initと呼ばれる)と逆互換であるため、引き続き使用できます。sysvinitservicesystemctl

cronを介してサービス/デーモンを起動することはお勧めできません。事実上の標準は、より良い構造とより多くの機能を提供するシステムユニットを定義したり、カーネルが特定の実行/etc/rc.dレベル(「開始状態」)に達したときにレガシー実行レベルスクリプトを使用することです。

上記の用語をオンラインで検索して楽しい時間を過ごしてください。

関連情報