Linuxシステムを起動してログオンすると、舞台裏で起こっていることにいつも魅了されます。ベアメタルの電源ボタンを押すか、仮想マシンを起動することで、完全に機能するシステムにつながる一連のイベントを開始します。場合によっては1分もかかりません。ログオフしたり、システムをシャットダウンしたりする場合も同様です。
これをより面白くて楽しいものにしているのは、オペレーティングシステムが起動したとき、およびログオンまたはログアウトしたときに、オペレーティングシステムに特定のアクションを実行させることができるという事実です。
このディストリビューションにとらわれない記事では、Linuxでこれらの目標を達成するための従来の方法について説明します。
再起動または起動中にLinuxスクリプトを実行する
起動時にコマンドを実行したりスクリプトを実行したりするには、2つの従来の方法があります。
方法#1-cronジョブを使用する
スケジュールを示すために広く使用されている通常の形式(分/時間/日/月/曜日)に加えて、cronスケジューラでは@reboot
を使用することもできます。 。このディレクティブの後にスクリプトへの絶対パスが続くと、マシンの起動時にスクリプトが実行されます。
ただし、このアプローチには2つの注意点があります。
- a) cronデーモンが実行されている必要があり(通常の状況の場合)、
- b) スクリプトまたはcrontabファイルには、必要となる環境変数(存在する場合)が含まれている必要があります(詳細については、このStackOverflowスレッドを参照してください)。
方法#2 –/etc/rc.d/rc.localを使用
この方法は、systemdベースのディストリビューションでも有効です。このメソッドを機能させるには、/etc/rc.d/rc.local
に実行権限を付与する必要があります 次のように:
# chmod +x /etc/rc.d/rc.local
ファイルの最後にスクリプトを追加します。
次の画像は、2つのサンプルスクリプト(/home/gacanepa/script1.sh
)を実行する方法を示しています。 および/home/gacanepa/script2.sh
) cronを使用する ジョブとrc.local 、それぞれ、およびそれぞれの結果。
#!/bin/bash DATE=$(date +'%F %H:%M:%S') DIR=/home/gacanepa echo "Current date and time: $DATE" > $DIR/file1.txtscript2.sh:
#!/bin/bash SITE="Tecmint.com" DIR=/home/gacanepa echo "$SITE rocks... add us to your bookmarks." > $DIR/file2.txt
両方のスクリプトに事前に実行権限を付与する必要があることに注意してください:
$ chmod +x /home/gacanepa/script1.sh $ chmod +x /home/gacanepa/script2.sh
ログオンおよびログアウト時にLinuxスクリプトを実行する
ログオン時またはログアウト時にスクリプトを実行するには、~.bash_profile
を使用します および~.bash_logout
、 それぞれ。ほとんどの場合、後者のファイルを手動で作成する必要があります。以前と同じ方法で各ファイルの下部にスクリプトを呼び出す行をドロップするだけで、準備が整います。
概要
この記事では、再起動、ログオン、およびログアウト時にスクリプトを実行する方法について説明しました。ここに含めることができた他の方法を考えられる場合は、以下のコメントフォームを使用してそれらを指摘してください。ご連絡をお待ちしております!