
Linux では、起動時に実行されるプログラムを追加するために変更できるファイルがたくさんあります (/etc/rc.local、bashrc、bash_profile、$HOME/.config/autostart など)。ここで逆の質問があります。プログラムがあるのですが、起動時にこのプログラムが実行されたかどうかを確認できますか?
**注: プログラムは起動時と終了時に1回実行できます
答え1
あなたはアクセス時間スクリプト用。これは100%信頼できるものではない(ファイルシステムによってはnoatime
設定されている場合があるため)。しかし、通常はinitスクリプトには役立つ。例:
find /etc -type f -atime -1
私はそれが役に立つと感じましたかなり長い間。
答え2
pstree
実行中のプロセスの詳細な出力をツリー形式で提供します。
サンプル出力はこちら
init─┬─auditd───{auditd} ├─crond ├─docker─┬─10*[bash] │ ├─docker───5*[{docker}] │ ├─docker───4*[{docker}] │ ├─2*[docker───3*[{docker}]] │ ├─start-app.sh─┬─java───40*[{java}] │ │ └─tail │ ├─start-app.sh─┬─java───81*[{java}] │ │ └─tail
答え3
次のコマンドを実行できます:
ps aux | grep PROCESS_NAME
たとえば、ping
プロセスの場合、結果は次のようになります。
user 9639 0.0 0.0 6508 732 pts/16 S+ 08:44 0:00 ping 192.168.0.1
user 9641 0.0 0.1 12972 2420 pts/15 R+ 08:44 0:00 grep --colour=auto ping
2 行目だけが表示される場合は、プロセスが実行されていないことを意味します。
プロセスがクラッシュしていると思われる場合は、 を使用できますatop
。atop
ここ。
答え4
初期化場所を確認し、プログラムが実行するように設定されているかどうかを確認します。
正直に言うと、もしこのプログラムができた実行されますが、実行されるかどうかはわかりません。実行されたかどうかを確認する唯一の方法は、実行する方法があったかどうかを確認するか(たとえば、何かに登録されているlocal.rc
かなど)、結果を確認することです(たとえば、プログラムは常にファイルにアクセスし/home/someuser/a
、他のものはアクセスすべきではありません)。
上記はログがないことを前提としています。