プロセス生成を監視するために、カーネルが割り当てた最後のPIDを定期的に書きたいと思います。どのファイルタイムスタンプを持つシステムのプロセス(PIDモニターによって生成されたプロセスだけでなく)(追加プロセスの生成を防ぐためにデーモンを使用)、どの言語でも可能ですが、POSIXシェルではこれが可能であると思います。
ベストアンサー1
これにより、Bashは毎秒タイムスタンプと最後のPIDファイルを保存します。ns_last_pid
システム制御:
このsysctlを使用して、ジョブの現在のpid名前空間に割り当てられた最後のpid。
old=""
while read < /proc/sys/kernel/ns_last_pid
do
if [ "$REPLY" != "$old" ]
then
printf '%(%s)T %d\n' -1 "$REPLY"
old=$REPLY
fi
read -t 1 || true
done > pids.log
質問:
/proc/sys/kernel/ns_last_pid
ただLinux 3.3で利用可能そして最新- 指定子
printf
%(fmt)T
のみBash 4.2で利用可能そして最新 - POSIX
read
そのようなオプションはありません-t
。 - 追加のPIDを使用しているため、内蔵されていない機能は
sleep
使用できません。cat