D. J. Bernstein

The readproctitle program

readproctitle maintains an automatically rotated log in memory for inspection by ps.

readproctitle is available in daemontools 0.75 and above.


     readproctitle L D
L consists of any number of arguments. D is one argument consisting of at least five dots.

readproctitle reads data into the end of D, shifting D to the left to make room. This means that the most recent data is visible to process-listing tools such as ps. readproctitle always leaves three dots at the left of D.

For example, if

     readproctitle io errors: ....................
reads the data
     fatal error xyz
     warning abc
then its command-line arguments change to
     readproctitle io errors: ... xyz!warning abc!
with a newline character in place of each !. Process-listing tools typically show the newline character as ? or \n.

readproctitle exits when it reaches the end of input.

Beware that most implementations of ps have small argument-length limits. These limits apply to the total length of readproctitle L D. I have not seen a system with a limit below 512 bytes.