proc_pid_timers(5)

โœจ proc_pid_timers โ€” the manual page bestie ๐Ÿ’–

ok so this is /proc_pid_timers(5), a File Formats Manual situation, and it's genuinely such a fun little corner of procfs. let's get into it ๐Ÿซถ


๐Ÿ’ซ NAME

/proc/pid/timers โ€” POSIX timers, bestie. that's the whole vibe.


๐ŸŒธ DESCRIPTION

/proc/pid/timers</p> (since Linux 3.10) ๐ŸŽ€

this file is literally a lil list of every POSIX timer this process has going on. each timer shows up as a group of lines, and each group kicks off with a line that starts with the string ID:. here's what that looks like:

ID: 1
signal: 60/00007fff86e452a8
notify: signal/pid.2634
ClockID: 0
ID: 0
signal: 60/00007fff86e452a8
notify: signal/pid.2634
ClockID: 1

now let's break down what each of those lines is actually telling you, because they are lowkey doing a lot ๐Ÿ˜ญ

  • ID โ€” the ID for this timer. and no, before you ask, this is not the same as the timer ID that timer_create(2) hands back to you. it's actually the same kernel-internal ID that you can get your hands on via the si_timerid field of the siginfo_t structure (go peek at sigaction(2) for that one ๐Ÿ‘€).
  • signal โ€” this is the signal number that this timer uses to deliver notifications, followed by a slash, and then the sigev_value value that got supplied to the signal handler. heads up tho: this is valid only for timers that notify via a signal. no signal, no dice.
  • notify โ€” okay so the part before the slash tells you the mechanism this timer uses to deliver notifications, and it's one of "thread", "signal", or "none". right after the slash you get either the string "tid" for timers with SIGEV_THREAD_ID notification, or "pid" for timers that notify by other mechanisms. and then, following the ".", is the PID of the process (or the kernel thread ID of the thread) that's gonna get a signal delivered to it if the timer delivers notifications via a signal. so much info in one lil line fr fr ๐Ÿ’…
  • ClockID โ€” this field IDs the clock that the timer uses for measuring time. for most clocks this is just a number that matches one of the user-space CLOCK_* constants exposed via <time.h>. but โœจ the special girlies โœจ are: CLOCK_PROCESS_CPUTIME_ID timers, which display with a value of -6 in this field, and CLOCK_THREAD_CPUTIME_ID timers, which display with a value of -2. iconic, honestly.
๐Ÿšจ important note bestie: this file is available only when the kernel was configured with CONFIG_CHECKPOINT_RESTORE. no config, no timers file. that's the rule ๐Ÿซ 

๐Ÿฆ‹ SEE ALSO


and that's the tea, babe ๐Ÿ’œ slay, you now fully understand /proc/pid/timers. go forth and read your timers.

โ€” with love from Linux man-pages 6.20, dated 2026-02-08 ๐ŸŽ€โœจ๐Ÿ‘‘

๐Ÿ“ฆ where this page comes from
  • arch rolling: man-pages 6.20-1 ยท BSD-2-Clause AND BSD-3-Clause AND BSD-4.3TAHOE AND BSD-4-Clause-UC AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-linking-exception AND LGPL-3.0-or-later AND LicenseRef-Public-Domain AND LicenseRef-UltraPermissive AND Linux-man-pages-1-para AND Linux-man-pages-copyleft AND Linux-man-pages-copyleft-2-para AND Linux-man-pages-copyleft-var AND MIT AND Spencer-94
  • nixpkgs unstable: man-pages 6.20
  • ๐Ÿ“œ the page's license: GPL-3.0-or-later
  • ๐Ÿ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms