1. ホーム
  2. linux

[解決済み] 起動時にシェルスクリプトを実行する方法

2022-03-22 21:08:48

質問

について アマゾンS3 Linuxインスタンスで、2つのスクリプト start_my_appstop_my_app を起動・停止する いつまでも (を実行し、Node.jsアプリケーションを実行します)。これらのスクリプトを使って、Node.jsアプリケーションを手動で起動・停止しています。ここまでは順調です。

私の問題:私はまた、次のように設定したい。 start_my_app は、システムが起動するたびに実行されます。の中にファイルを追加する必要があることは分かっています。 init.d の中の適切なディレクトリにシンボリックリンクする方法も知っています。 rc.d に置くファイルの中身がわからないのです。 init.d . というように1行でいいと思っています。 start_my_app しかし、私の場合はうまくいきませんでした。

解決方法は?

ファイル内に /etc/init.d/ で実行可能に設定する必要があります。

chmod +x /etc/init.d/start_my_app

meetamit のおかげで、もしこれが実行されない場合は /etc/rc.d/

ln -s /etc/init.d/start_my_app /etc/rc.d/

最新のDebianでは、スクリプトがLSBに準拠している必要があるため、これは動作しないことに注意してください(少なくとも、次のアクションを提供する必要があります:start, stop, restart, force-reload, and status)。 https://wiki.debian.org/LSBInitScripts

注意点として、スクリプトのパスは相対パスではなく、絶対パスで記述した方が、予期せぬ問題を解決できる可能性があります。

/var/myscripts/start_my_app

そして、そのファイルの上に追加することを忘れないでください。

#!/bin/sh