gspl-ripc traces, monitors problems with or deletes IPC facilities used by
GNUspool. Many of the facilities are used for debugging, but it also
serves as a quick method of deleting the IPC facilities, being easier
to use than ipcs and ipcrm, in the event that the scheduler has
crashed or been killed without deleting the IPC facilities.
To use this facility, just run gspl-ripc thus:
gspl-ripc -d >/dev/null
The diagnostic output may be useful as it reports any inconsistencies.
The monitoring option can be used to diagnose processes, possibly not
GNUspool ones, which are interfering with GNUspool shared memory
segments, in cases where a third-party application is suspected of
damaging the shared memory.
Gspl-ripc also checks for errors in memory-mapped files where the
version of GNUspool is using those rather than shared memory.
OPTIONS
-A
Display details of jobs and printers. This often generates a lot of
output and is not really necessary.
-D secs
Monitor which process has last attached to shared memory segments and
report changes, polling every secs seconds.
-d
Delete the IPC facilities after printing out contents. This saves
messing with arguments to ipcrm(1).
-f
Display the free chains for jobs and printers in shared memory. This
generates a lot of output and isn't usually necessary.
-n
Suppress display from -D option if everything is OK.
-o outfile
Output to outfile rather than standard output. Set it to
/dev/null if you don't want to see any output. The output is passed
through fgrep(1) to find the line (if any) with the process id of the
process which last attached to the shared memory.
-G
Used in conjunction with the -P option, the output from ps(1) is
displayed in full, without passing it through fgrep(1).
-P psarg
Specify argument to ps(1) to invoke if corruption detected when
monitoring with -D option.
-r
Read and display the entries on the message queue. This is normally
suppressed because messages on the queue can't be ``peeked at'' or ``unread''.
-S dir
This is only relevant for versions of GNUspool which use
memory-mapped files rather than shared memory. It specifies the
location of the spool directory. If this is not specified, then the
master configuration file gnuspool.conf is consulted to find
the spool directory location, or failing that, the directory
/var/spool/gnuspool is used.
-x
Dump the contents of shared memory or memory-mapped files in
hexadecimal and ASCII characters.
-B n
Where n may be 1 to 8, specify the width of the hexadecimal dump
output as a number of 32-bit words.
-N <char>
Replace the character in the ASCII part of the hexadecimal dump to
represent non-ASCII characters with the specified character (the first
character of the argument). The default is ".".
To specify a space, you may need to use quotes thus:
-N ' '
EXAMPLE
To delete all IPC facilities after GNUspool has crashed.
gspl-ripc -d -o /dev/null
To monitor the job shared memory segment for errors, printing out the
ps(1) output (where the full listing is obtained with "-ef") search
for the process id of the last process to attach to the segment. Print
out the contents of the segment including in hexadecimal after
corruption is detected.
Copyright (c) 2009 Free Software Foundation, Inc.
This is free software. You may redistribute copies of it under the
terms of the GNU General Public License
<http://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.