---
name: "readproctitle"
section: "8"
platform: "linux"
package: "daemontools"
version: "1:0.76-14"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://carta.tech/man/readproctitle"
---

# readproctitle(8)

maintains an automatically rotated log in memory for inspection by ps(1). readproctitle is available in daemontools 0.75 and above.

## NAME

readproctitle - maintains an automatically rotated log in memory for inspection by [**ps**(1)](/man/ps/1.md).

readproctitle is available in daemontools 0.75 and above.

## SYNOPSIS

**readproctitle** *L* *D*

## DESCRIPTION

*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**(1)](/man/ps/1.md). **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**(1)](/man/ps/1.md) 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.

## SEE ALSO

[supervise(8)](/man/supervise/8.md), [svc(8)](/man/svc/8.md), [svok(8)](/man/svok/8.md), [svstat(8)](/man/svstat/8.md), [svscanboot(8)](/man/svscanboot/8.md), [svscan(8)](/man/svscan/8.md), [fghack(8)](/man/fghack/8.md),   [pgrphack(8)](/man/pgrphack/8.md), [multilog(8)](/man/multilog/8.md), [tai64n(8)](/man/tai64n/8.md), [tai64nlocal(8)](/man/tai64nlocal/8.md), [setuidgid(8)](/man/setuidgid/8.md), [envuidgid(8)](/man/envuidgid/8.md), [envdir(8)](/man/envdir/8.md), [softlimit(8)](/man/softlimit/8.md), [setlock(8)](/man/setlock/8.md), [ps(1)](/man/ps/1.md)

 http://cr.yp.to/daemontools.html\
  http://cr.yp.to/slashcommand.html
