2011-06-07 02:32:14 +05:30
|
|
|
.TH WATCH "1" "June 2011" "procps-ng" "User Commands"
|
2002-02-02 04:17:29 +05:30
|
|
|
.SH NAME
|
|
|
|
watch \- execute a program periodically, showing output fullscreen
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.B watch
|
2011-06-07 02:32:14 +05:30
|
|
|
[\fIoptions\fR] \fIcommand\fR
|
2002-02-02 04:17:29 +05:30
|
|
|
.SH DESCRIPTION
|
2011-02-23 13:47:54 +05:30
|
|
|
.B watch
|
2002-02-02 04:17:29 +05:30
|
|
|
runs
|
|
|
|
.I command
|
2009-11-24 05:30:43 +05:30
|
|
|
repeatedly, displaying its output and errors (the first screenfull). This
|
2011-06-07 02:32:14 +05:30
|
|
|
allows you to watch the program output change over time. By default, the
|
|
|
|
program is run every 2 seconds.
|
2012-01-26 20:12:37 +05:30
|
|
|
By default,
|
2011-06-07 02:32:14 +05:30
|
|
|
.B watch
|
|
|
|
will run until interrupted.
|
|
|
|
.SH OPTIONS
|
|
|
|
.TP
|
2012-02-12 01:30:05 +05:30
|
|
|
\fB\-d\fR, \fB\-\-differences\fR [\fIpermanent\fR]
|
|
|
|
Highlight the differences between successive updates. Option will read
|
|
|
|
optional argument that changes highlight to be permanent, allowing to see what
|
|
|
|
has changed at least once since first iteration.
|
2011-06-07 02:32:14 +05:30
|
|
|
.TP
|
|
|
|
\fB\-n\fR, \fB\-\-interval\fR \fIseconds\fR
|
|
|
|
Specify update interval. The command will not allow quicker than 0.1 second
|
|
|
|
interval, in which the smaller values are converted.
|
|
|
|
.TP
|
|
|
|
\fB\-p\fR, \fB\-\-precise\fR
|
|
|
|
Make
|
2009-11-24 05:30:46 +05:30
|
|
|
.BR watch
|
|
|
|
attempt to run
|
|
|
|
.I command
|
|
|
|
every
|
|
|
|
.I interval
|
|
|
|
seconds. Try it with
|
|
|
|
.B ntptime
|
2011-06-07 02:32:14 +05:30
|
|
|
and notice how the fractional seconds stays (nearly) the same, as opposed to
|
|
|
|
normal mode where they continuously increase.
|
|
|
|
.TP
|
|
|
|
\fB\-t\fR, \fB\-\-no\-title\fR
|
|
|
|
Turn off the header showing the interval, command, and current time at the
|
|
|
|
top of the display, as well as the following blank line.
|
|
|
|
.TP
|
|
|
|
\fB\-b\fR, \fB\-\-beep\fR
|
|
|
|
Beep if command has a non-zero exit.
|
|
|
|
.TP
|
|
|
|
\fB\-e\fR, \fB\-\-errexit\fR
|
2012-01-05 16:53:46 +05:30
|
|
|
Freeze updates on command error, and exit after a key press.
|
2011-06-07 02:32:14 +05:30
|
|
|
.TP
|
2012-01-26 20:12:37 +05:30
|
|
|
\fB\-g\fR, \fB\-\-chgexit\fR
|
|
|
|
Exit when the output of
|
|
|
|
.I command
|
|
|
|
changes.
|
|
|
|
.TP
|
2011-06-07 02:32:14 +05:30
|
|
|
\fB\-c\fR, \fB\-\-color\fR
|
|
|
|
Interpret ANSI color sequences.
|
|
|
|
.TP
|
|
|
|
\fB\-x\fR, \fB\-\-exec\fR
|
2002-02-02 04:17:29 +05:30
|
|
|
.I command
|
2011-06-07 02:32:14 +05:30
|
|
|
is given to
|
|
|
|
.B sh \-c
|
2002-02-02 04:17:29 +05:30
|
|
|
which means that you may need to use extra quoting to get the desired effect.
|
2011-06-07 02:32:14 +05:30
|
|
|
This with the \-\-exec option, which passes the command to
|
|
|
|
.BR exec (2)
|
|
|
|
instead.
|
|
|
|
.TP
|
|
|
|
\fB\-h\fR, \fB\-\-help\fR
|
|
|
|
Display help text and exit.
|
|
|
|
.TP
|
|
|
|
\fB\-v\fR, \fB\-\-version\fR
|
|
|
|
Display version information and exit.
|
|
|
|
.SH NOTE
|
2002-02-02 04:17:29 +05:30
|
|
|
Note that POSIX option processing is used (i.e., option processing stops at
|
2011-02-23 13:47:54 +05:30
|
|
|
the first non\-option argument). This means that flags after
|
2002-02-02 04:17:29 +05:30
|
|
|
.I command
|
|
|
|
don't get interpreted by
|
|
|
|
.BR watch
|
|
|
|
itself.
|
|
|
|
.SH EXAMPLES
|
|
|
|
.PP
|
|
|
|
To watch for mail, you might do
|
|
|
|
.IP
|
|
|
|
watch \-n 60 from
|
|
|
|
.PP
|
|
|
|
To watch the contents of a directory change, you could use
|
|
|
|
.IP
|
|
|
|
watch \-d ls \-l
|
|
|
|
.PP
|
2011-06-07 02:32:14 +05:30
|
|
|
If you're only interested in files owned by user joe, you might use
|
2002-02-02 04:17:29 +05:30
|
|
|
.IP
|
|
|
|
watch \-d 'ls \-l | fgrep joe'
|
|
|
|
.PP
|
|
|
|
To see the effects of quoting, try these out
|
|
|
|
.IP
|
|
|
|
watch echo $$
|
2011-02-23 13:47:54 +05:30
|
|
|
.br
|
2002-02-02 04:17:29 +05:30
|
|
|
watch echo '$$'
|
2011-02-23 13:47:54 +05:30
|
|
|
.br
|
2002-02-02 04:17:29 +05:30
|
|
|
watch echo "'"'$$'"'"
|
|
|
|
.PP
|
2009-11-24 05:30:46 +05:30
|
|
|
To see the effect of precision time keeping, try adding
|
|
|
|
.I \-p
|
|
|
|
to
|
|
|
|
.IP
|
|
|
|
watch \-n 10 sleep 1
|
|
|
|
.PP
|
2002-02-02 04:17:29 +05:30
|
|
|
You can watch for your administrator to install the latest kernel with
|
|
|
|
.IP
|
2011-02-23 13:47:54 +05:30
|
|
|
watch uname \-r
|
2002-02-02 04:17:29 +05:30
|
|
|
.PP
|
2009-11-24 05:30:46 +05:30
|
|
|
(Note that
|
|
|
|
.I \-p
|
|
|
|
isn't guaranteed to work across reboots, especially in the face of
|
|
|
|
.B ntpdate
|
|
|
|
or other bootup time-changing mechanisms)
|
2002-02-02 04:17:29 +05:30
|
|
|
.SH BUGS
|
|
|
|
Upon terminal resize, the screen will not be correctly repainted until the
|
|
|
|
next scheduled update. All
|
2011-02-23 13:47:54 +05:30
|
|
|
.B \-\-differences
|
2002-02-02 04:17:29 +05:30
|
|
|
highlighting is lost on that update as well.
|
|
|
|
.PP
|
|
|
|
Non-printing characters are stripped from program output. Use "cat -v" as
|
|
|
|
part of the command pipeline if you want to see them.
|
2009-11-24 05:30:46 +05:30
|
|
|
.PP
|
2009-11-04 00:54:27 +05:30
|
|
|
Combining Characters that are supposed to display on the character at the
|
|
|
|
last column on the screen may display one column early, or they may not
|
|
|
|
display at all.
|
|
|
|
.PP
|
|
|
|
Combining Characters never count as different in
|
|
|
|
.I \-\-differences
|
2011-06-07 02:32:14 +05:30
|
|
|
mode. Only the base character counts.
|
2009-11-04 00:54:27 +05:30
|
|
|
.PP
|
|
|
|
Blank lines directly after a line which ends in the last column do not
|
|
|
|
display.
|
|
|
|
.PP
|
2009-11-24 05:30:46 +05:30
|
|
|
.I \-\-precise
|
2011-06-07 02:32:14 +05:30
|
|
|
mode doesn't yet have advanced temporal distortion technology to compensate
|
|
|
|
for a
|
2009-11-24 05:30:46 +05:30
|
|
|
.I command
|
|
|
|
that takes more than
|
|
|
|
.I interval
|
|
|
|
seconds to execute.
|
|
|
|
.B watch
|
|
|
|
also can get into a state where it rapid-fires as many executions of
|
|
|
|
.I command
|
|
|
|
as it can to catch up from a previous executions running longer than
|
|
|
|
.I interval
|
|
|
|
(for example,
|
|
|
|
.B netstat
|
|
|
|
taking ages on a DNS lookup).
|
2012-01-21 21:11:31 +05:30
|
|
|
.SH "EXIT STATUS"
|
|
|
|
.PP
|
|
|
|
.RS
|
|
|
|
.PD 0
|
|
|
|
.TP
|
|
|
|
.B 0
|
|
|
|
Success.
|
|
|
|
.TP
|
|
|
|
.B 1
|
|
|
|
Various failures.
|
|
|
|
.TP
|
|
|
|
.B 2
|
|
|
|
Forking the process to watch failed.
|
|
|
|
.TP
|
|
|
|
.B 3
|
|
|
|
Replacing child process stdout with write side pipe failed.
|
|
|
|
.TP
|
|
|
|
.B 4
|
|
|
|
Command execution failed.
|
|
|
|
.TP
|
|
|
|
.B 5
|
|
|
|
Closign child process write pipe failed.
|
|
|
|
.TP
|
|
|
|
.B 7
|
|
|
|
IPC pipe creation failed.
|
|
|
|
.TP
|
|
|
|
.B 8
|
|
|
|
Getting child process return value with
|
|
|
|
.BR waitpid (2)
|
|
|
|
failed, or command exited up on error.
|
|
|
|
.TP
|
|
|
|
.B other
|
|
|
|
The watch will propagate command exit status as child exit status.
|
2002-02-02 04:17:29 +05:30
|
|
|
.SH AUTHORS
|
|
|
|
The original
|
|
|
|
.B watch
|
2011-06-07 02:32:14 +05:30
|
|
|
was written by
|
|
|
|
.UR rembo\@\:unisoft.\:com
|
|
|
|
Tony Rems
|
|
|
|
.UE
|
|
|
|
in 1991, with mods and
|
2002-02-02 04:17:29 +05:30
|
|
|
corrections by Francois Pinard. It was reworked and new features added by
|
2011-06-07 02:32:14 +05:30
|
|
|
.UR mkc\@\:acm.\:org
|
|
|
|
Mike Coleman
|
|
|
|
.UE
|
|
|
|
in 1999. The beep, exec, and error handling features were added by
|
|
|
|
.UR morty\@\:frakir.\:org
|
|
|
|
Morty Abzug
|
|
|
|
.UE
|
|
|
|
in 2008. On a not so dark and stormy morning in March of 2003,
|
|
|
|
.UR asd\@\:suespammers.\:org
|
|
|
|
Anthony DeRobertis
|
|
|
|
.UE
|
|
|
|
got sick of his watches that should update every minute eventually updating
|
|
|
|
many seconds after the minute started, and added microsecond precision.
|
|
|
|
Unicode support was added in 2009 by
|
|
|
|
.UR procps\@\:rrod.\:net
|
|
|
|
Jarrod Lowe
|
|
|
|
.UE
|