【问题标题】:Watching process state transition观察进程状态转换
【发布时间】:2013-11-19 23:20:20
【问题描述】:

我需要编写将监视指定进程的 linux 应用程序。是否可以获知流程状态的每一次变化?我的意思是 statetask_struct 中的每一次字段更改

【问题讨论】:

  • Look here... 仔细阅读最后两三个帖子,他们在谈论你想做什么。
  • 他们正在谈论获取有关进程的当前信息。我不仅想获得有关当前状态的信息,还想在它发生变化时得到通知。例如,当进程将其状态从 TASK_RUNNING 更改为 TASK_UNINTERRUPTIBLE。
  • 这样的信息只有几纳秒的时间,然后就过时了。
  • 嗯,是的。提到的程序是一个大学项目,在现实生活中不一定有用。有关状态转换的信息将仅用于生成绘图。

标签: c linux process linux-kernel


【解决方案1】:

启用 ftrace 并继续记录它

cat /sys/kernel/debug/tracing/trace
cat /sys/kernel/debug/tracing/tracing_on 
1
cat /sys/kernel/debug/tracing/current_tracer 
function
cat /sys/kernel/debug/tracing/available_tracers 
blk function_graph mmiotrace wakeup_rt wakeup function nop

关注:http://lwn.net/Articles/290277/

【讨论】:

  • 谢谢! trace-cmd record -e sched:sched_switch 是我需要的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-24
  • 1970-01-01
  • 2011-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-28
相关资源
最近更新 更多