Linuxでは、起動時に実行するプログラムを追加するために変更できるファイルがたくさんあります(/etc/rc.local、bashrc、bash_profile、$HOME/.config/autostart、...)?逆の質問があります。プログラムがあります。このプログラムが起動時に実行されたかどうかを確認できますか?
**注:プログラムは起動時と終了時に一度実行できます
スクリプトのアクセス時間を確認できます。これは100%信頼できるものではありません(一部のファイルシステムではnoatime
を設定できるため)。しかし、それは通常init-scriptsに役立ちます、例えば、
find /etc -type f -atime -1
かなりしばらく の場合に便利です。
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
次のコマンドを実行できます。
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
here に関する別の質問が見つかります。
私はinitの場所を見て、プログラムが実行されるように設定されているかどうかを確認します。
正直なところ、プログラムがどういうわけかcould実行されたが、実行されたかどうかがわからない場合、実行されたかどうかを確認できる唯一のチャンスは、実行方法があるかどうかを確認することです(eg一部のlocal.rc
などに登録されている)、または結果を確認することで登録されている(たとえば、プログラムは常にファイル/home/someuser/a
にアクセスし、他には何もアクセスしていないはずです)。
上記は、ログがないことを前提としています。