Ubuntuでupstartスクリプトを作成しました。Debianでも同じだと思います。しかし、Debianには/etc/init
Ubuntuにあるフォルダーがありません。私はupstartのダウンロードページに行き、パッケージapt-get install upstart
があることを確認しましたが、それはsysvinitを削除するように要求します。UbuntuスクリプトをDebianで動作させるにはどうすればよいですか?
Ubuntuでupstartスクリプトを作成しました。Debianでも同じだと思います。しかし、Debianには/etc/init
Ubuntuにあるフォルダーがありません。私はupstartのダウンロードページに行き、パッケージapt-get install upstart
があることを確認しましたが、それはsysvinitを削除するように要求します。UbuntuスクリプトをDebianで動作させるにはどうすればよいですか?
回答:
DebianとUbuntuの直接関係ではなく、SysVinitとUpstartの関係です。DebianのデフォルトはSysVinitです。Upstartをインストールすることはできますが、何をしているのかを知る必要があり、実稼働サーバーにインストールすることを考える前に、それをよく理解しておく必要があります。理論的には両方をインストールできますが、プロセス番号1として実行されるのはそのうちの1つだけであり、Debianはこれをすぐにサポートしません。
UpstartはSysVinitよりも若く、より多くの機能を備えているため、Upstartサービスの説明をSysVinitに送信できないのはなぜですか。のスクリプト/etc/init.d
を作成する必要があります。基本的に、そのスクリプトは、最初の引数($1
)およびstart
、stop
またはrestart
指示どおりのサービスを調べる必要があります。
Upstartイベントを使用してスクリプトを開始するタイミングを決定していた場合、他の方法を使用する必要があります。Upstartは、さまざまなソースからイベントを収集します。Upstartが取得した場所からトリガーを取得できます。この点で、Upstartは、さまざまな場所やプロトコルでトリガーを探す必要がない便利な方法です。
削除する理由sysvinit
は、これら2つが競合しているためです。また、これsysvinit
は必須であると考えられていることに注意してください(読んでください:何をしているのかわからない限り、削除しないでください)。
「aptitude show upstart」の出力の一部:
Conflicts: startup-tasks, system-services, sysvinit, upstart-compat-sysv, upstart-job
システムにホースをかける余裕がある場合は、先に進んでインストールしてください。
/etc/init.d
、最小限のstart|stop|restart
コマンドを理解できるようにします。upstart
スクリプトを実行する必要はなく、通常のコマンドラインのみを実行します。
exec
ありません-シェルスクリプトについてのマンページや書籍を読んでください。