回答:
exit 0と言う行の前に、/ etc/rc.localからスクリプトを呼び出すことができます
アプリのシャットダウンに関しては、/ etc/rc0.dにスクリプトを置くことをお勧めします。大文字のKで名前を付けてから、これらのスクリプトの実行順序を指定する2桁の数字と名前を付ける必要があります。パラメータ「stop」で呼び出されますが、単純な停止スクリプトではこれを無視できます。
Debian Jessie以来、古いinit
プログラムはsystemd
!に置き換えられました。
自分でチェックしてください。実行:ls -l /sbin/init
そして、それが指しているものを確認します。最近では、より新しい初期化プログラムsystemd
(/sbin/init -> /lib/systemd/systemd
)を指します。
そのため、選択された回答やその他の回答は今では時代遅れです!!!
*従来の方法でSystem-Vツールを使用してスクリプトをインストールすることはできますが、一般的に言って良い考えではありません。
man systemd.service
言う:*
特定の名前でサービスが要求され、ユニット構成ファイルが見つからない場合、systemdは同じ名前のSysV initスクリプトを検索し、そのスクリプトからサービスユニットを動的に作成します。これは、SysVとの互換性に役立ちます。この互換性は非常に包括的なものですが、100%ではありません。
思っているより簡単です。(-:
ブートアップまたはシャットダウンプログラムをインストールするための新しい推奨方法は次のとおりです。
ではsystemd
、あなたは最初に作成するユニットファイルを。ユニットファイルはほとんどが宣言であり、コードではありません。
次に、systemctl
コマンドを使用して、そのユニットを有効化または起動します。
systemd
たとえば、重要なプログラムがクラッシュまたは強制終了された場合に自動的に再起動するなど、作業の大部分を自動で行います。また、プログラムはデフォルトで必要な場所とタイミングでシャットダウンされ、ユーザーの余分な作業は必要ありません。
systemd
ここから学び始めましょう:
開始するマニュアルページ:
man systemd.unit
-ユニットファイル全般
man systemd.service
-デーモンやシングルランプログラムなどのサービスユニットファイルについて。
man systemctl
-コマンドラインユーザーインターフェイス
man journalctl
-systemdが実行したログを表示する
man systemd
-initプログラム自体について
他にもさまざまな種類のユニットファイルがあります。たとえば、
man systemd.target
-グループおよび一般的な同期ターゲット用。
上記の基本を理解man -k systemd
したら、他の関連するmanページを見つけてください。
あなたが何をするにしても、Debianではこれらのいずれも使用しないでください:
update-rc.d
-System-Vスタイルのinitスクリプトリンクのインストールと削除sysv-rc-conf
-初期化スクリプトリンクのようなSysVの実行レベルの構成runlevel
-以前および現在のSysVランレベルを出力BUM
- B OOT U P M anager -グラフィカルランレベルエディタsystemadm
-systemdシステムとサービスマネージャーのグラフィカルフロントエンドこのユニットファイルは、起動時にNoIP.comデーモンを起動し、シャットダウン時にシャットダウンします。
このデーモンは、随時、私のDDNS(更新する私の現在のIPアドレスに送信D ynamic DNS(D omain Nの雨のSのそれが移動するどこので、私のコンピュータで私のドメイン名のポインティングを保ち、ERVER))プロバイダのデータ・ベースを。
このユニットファイルは、私のシステムの次の設定ファイルにあります。 /etc/systemd/system/noip2.service
ユニットファイルの内容は次のとおりです。
# Comments can only go at the beginning of the line!
[Unit]
Description=Start the NoIP IP update daemon. This runs every 30 minutes and reports our current IP to NoIP.com to update Love2d.ddns.net.
Documentation=https://no-ip.com/
Documentation=file:///nobak/Installers/NoIP/noip-2.1.9-1/README.FIRST
[Service]
# 'forking' because process returns after starting daemon (traditional unix daemon).
Type=forking
# This program runs and returns, leaving the running daemon
ExecStart=/usr/local/bin/noip2
# Be in no hurry to start this. Max nice is +19.
Nice=15
# If it dies for any reason, then restart it
Restart=always
[Install]
# Installs a hook to use this unit file when the system boots or shuts down
WantedBy=multi-user.target
ユニットファイルを手動で実行します(テスト用など):
$ sudo systemctl start noip2
。 $ sudo systemctl restart noip2
ます。 $ sudo systemctl stop noip2
ます。 起動時またはシャットダウン時にユニットファイルを自動的に実行するようにシステムを構成します。
$ sudo systemctl enable noip2
。 $ sudo systemctl disable noip2
ます。ビュー・ログ
$ sudo journalctl -u noip2