program is the back-end of the Systemtap tool. It expects a kernel
module produced by the front-end
Splitting the systemtap tool into a front-end and a back-end allows a
user to compile a systemtap script on a development machine that has
the kernel debugging information (need to compile the script) and then
transfer the resulting kernel module to a production machine that
doesn't have any development tools or kernel debugging information installed.
Please refere to stappaths (7) for the version number, or run
rpm -q systemtap (fedora/red hat)
apt-get -v systemtap (ubuntu)
program supports the following options. Any other option
prints a list of supported options.
Command CMD will be run and the
program will exit when CMD
does. The '_stp_target' variable will contain the pid for CMD.
The '_stp_target' variable will be set to PID.
Send output to FILE. If the module uses bulk mode, the output will
be in percpu files FILE_x(FILE_cpux in background and bulk mode)
where 'x' is the cpu number. This supports strftime(3) formats
The systemtap module will specify a buffer size.
Setting one here will override that value. The value should be
an integer between 1 and 4095 which be assumed to be the
buffer size in MB. That value will be per-cpu if bulk mode is used.
Load module and start probes, then detach from the module leaving the
probes running. The module can be attached to later by using the
Attach to loaded systemtap module.
Delete a module. Only detached or unused modules
the user has permission to access will be deleted. Use "*"
(quoted) to delete all unused modules.
Run staprun in background as a daemon and show it's pid.
Sets the maximum size of output file and the maximum number of output files.
If the size of output file will exceed
, systemtap switches output file to the next file. And if the number of
output files exceed
, systemtap removes the oldest output file. You can omit the second argument.
Sets the value of global variable var1 to val. Global variables contained
within a module are treated as module options and can be set from the
staprun command line.
is either a module path or a module name. If it is a module name,
the module will be looked for in the following directory
(where 'VERSION' is the output of "uname -r"):
Any additional arguments on the command line are passed to the
module. One use of these additional module arguments is to set the value
of global variables declared within the module.
program installs a Systemtap kernel module, users can detach from the
kernel module and reattach to it later. The
option loads the module and automatically detaches. Users can also
detach from the kernel module interactively by sending the SIGQUIT
signal from the keyboard (typically by typing Ctrl-\).
To reattach to a kernel module, the
option would be used.
FILE SWITCHING BY SIGNAL
, users can command it to switch output file to next file when it
outputs to file(s) (running staprun with
option) by sending a
signal to the
process. When it receives SIGUSR2, it will switch output file to
new file with suffix
where N is the sequential number.
$ staprun -o foo ...
outputs trace logs to
and if it receives
signal, it switches output to
file. And receiving
again, it switches to
SAFETY AND SECURITY
Systemtap is an administrative tool. It exposes kernel internal data
structures and potentially private user information. See the
manual page for additional information on safety and security.
To increase system security, only the root user and members of the
group can use
to insert systemtap modules (or attach to existing ones).
Members of the
group can use
to insert or remove systemtap modules (or attach to existing systemtap modules)
under the following conditions:
The module is located in
the /lib/modules/VERSION/systemtap directory. This directory
must be owned by root and not be world writable.
The module has been signed by a trusted signer. Trusted signers are normally
systemtap compile servers which sign modules when the --unprivileged option is
specified by the client. See the
manual page for a for more information.
If MODULE is a module name, the module will be looked for in this directory.
Users who are only in the
group can install modules
located in this directory. This directory must be owned by the root
user and not be world writable.