引数としてtask_structのアドレスを指定すると、 そのプロセスの情報を表示します。 引数無しでtask_structを実行すると、 実行中のすべてのプロセスの一覧を表示します。 (init_task_unionからtask_structのチェーンを辿ります)
タスクの状態(S)は以下の記号で表しています。
R | TASK_RUNNING | 実行可能状態 |
---|---|---|
I | TASK_INTERRUPTABLE | 休眠状態 |
U | TASK_UNINTERRUPTABLE | 休眠状態 (シグナルで起きない) |
Z | TASK_ZOMBIE | ゾンビ状態 |
T | TASK_STOPPED | サスペンド状態 |
Linux2.4まではtask_structの直後にカーネルスタック があり、二つあわせて2ページ8KBになっています。
Linux 2.5 以降では task_struct と カーネルスタックは分離されました。
MMエントリはmm_struct コマンドで表示できます。 詳細表示(-f)で出力されるオープンファイルは fileコマンドで表示できます。 詳しくはfiles_struct の説明をを参照してください。 カーネルスタックトレースは、 traceコマンドで表示できます。
> task_struct ! head ADDR S PID SID UID EUID MM NAME FLAGS c02ce000 R 0 0 0 0 0 swapper cfee4000 I 1 0 0 0 c1389080 init superpriv c12ca000 I 2 1 0 0 0 keventd forknoexec c12fe000 I 3 1 0 0 0 kapmd forknoexec c12fc000 I 4 1 0 0 0 ksoftirqd_CPU0 forknoexec c12fa000 I 5 1 0 0 0 kswapd forknoexec memalloc c12f8000 I 6 1 0 0 0 bdflush forknoexec c12f6000 I 7 1 0 0 0 kupdated forknoexec c13ee000 I 9 1 0 0 0 khubd forknoexec cf8bc000 I 461 461 0 0 c13891c0 syslogd forknoexec |
-fオプションを付けると詳細を表示します。
> task_struct -f c9d90000 ADDR S PID SID UID EUID MM NAME FLAGS c9d90000 R 29463 29427 524 524 c412b884 mcrash superpriv FILES CNT FDS FDSET NEXT FD CLOSEXEC OPENFDS c7fe4044 1 256 1024 4 c6803400 c7fe4064 c7fe40e4 0:cb85ef54 1:cb85ef54 2:cb85ef54 3*c12cb1f4 lock_depth: -1 nice: 0 sleep_time: 59ddb9b (jiffies) mm: c412b884 (mm_struct) binfmt: c04686b8 (binfmt) pptr: c6ae6000 (task_struct) times: b b - 0 0 start_time: 59dd8c0 (jiffies) user: cb1fe3a4 tty: ca792000 fs: cbfef628 (fs_struct) namespace: c12171f4 sig: cba435a0 blocked: 00000000 00000000 thread: c9d90370 eip:c0113c5c esp:c9d91ec8 esp0:c9d92000 |
mcrash, Copyright (C) 2002,2003 ASANO Masahiro |