systemtap man page on Oracle

Man page or keyword search:  
man Server   33470 pages
apropos Keyword Search (all sections)
Output format
Oracle logo
[printable version]

SYSTEMTAP(8)							  SYSTEMTAP(8)

NAME
       systemtap - SystemTap initscript service

SYNOPSIS
       service systemtap COMMAND [OPTIONS] [SCRIPT...]

DESCRIPTION
       The SystemTap initscript aims to provide a way to run scripts as a ser‐
       vice and easily control them individually. Scripts can be configured to
       start  upon  manual  request, or during system startup. On dracut-based
       systems, it is also possible to integrate scripts in the initramfs  and
       have them start during early-boot.

       There are various parameters and options available to modify global be‐
       haviour, as well as script behaviour. Dependencies between scripts  can
       be  established	so  that starting one starts others (especially conve‐
       nient  when  using  the	-DRELAY_HOST  and  -DRELAY_GUEST  options   of
       stap(1)).

       The  configuration  file	 of  the initscript is located at /etc/system‐
       tap/config. Acceptable parameters are detailed in the GLOBAL PARAMETERS
       section.

       Scripts	must  be  placed  in the /etc/systemtap/script.d directory and
       must have a .stp extension. When referring to them on the  command-line
       however,	 there	in  no need to include the .stp extension. The scripts
       directory may be changed by setting the SCRIPT_PATH  parameter  in  the
       configuration file.

COMMANDS
       One of the commands below must be specified:

       start  Start  SCRIPTs.  If  no scripts are specified, start the scripts
	      specified by the DEFAULT_START configuration.  If	 DEFAULT_START
	      is  not  set,  start  all	 scripts  in the script directory. For
	      scripts already started, the command is  ignored.	  The  command
	      will  fail  if  the  scripts fail to start (see also the PASSALL
	      configuration).

	      If the AUTOCOMPILE configuration is on, the command will try  to
	      compile  or  update  the specified scripts when one of the below
	      conditions is true:

	      - The compiled cache file does not exist.

	      - The mtime (modified timestamp) of the original script file  is
		newer than the time of the compiled script cache.

	      - The specified stap options used to compile the script has been
		changed (see also the SCRIPT PARAMETERS section).

	      - The result of `uname -a` has been changed.

       stop   Stop SCRIPTs. If no scripts  are	specified,  stop  all  running
	      scripts.	For  scripts  already stopped, the command is ignored.
	      The command will fail if the scripts fail to stop (see also  the
	      PASSALL configuration).

       restart
	      Stop and start SCRIPTs.

       status Show the state of SCRIPTs and their dependencies.

       compile
	      Compile  SCRIPTs	but  do	 not  start  them. If the scripts have
	      already been compiled, prompt for confirmation before  overwrit‐
	      ing cache. Compile for the current kernel, or the kernel release
	      specified by the -r option.

       onboot Make SCRIPTs part of the initramfs so that they are started ear‐
	      lier  during the boot process. This command is only available on
	      dracut-based systems. If no scripts are specified, create a nor‐
	      mal initramfs devoid of any SystemTap files.

	      The  initramfs  is created for the current kernel, or the kernel
	      release specified by the -r option.  The	path  of  the  created
	      initramfs	 defaults  to  /boot/initramfs-KVER.img, where KVER is
	      the output of `uname -r`. The bootloader is also updated	(using
	      new-kernel-pkg(8))   to  make  the  kernel  entry	 use  the  new
	      initramfs file. Use the -o option to specify  a  different  path
	      (the bootloader will not be updated).

	      If the output file already exists, it is overwritten, unless the
	      -b switch is given, in which case	 the  file  is	appended  .bak
	      rather  than  overwritten.   However, if there is already a .bak
	      version of the file, the backup will not be overwritten.

	      WARNING: do not use the -o option of stap(1) with onboot scripts
	      because the script is started before the root filesystem is even
	      mounted.	Increase the buffer size if more space is needed.

       cleanup
	      Delete the compiled SCRIPTs from cache. If no scripts are speci‐
	      fied,  then all compiled scripts are deleted. Only the cache for
	      the current kernel is deleted, or the kernel  release  specified
	      by the -r option. Prompt for confirmation before deleting.

OPTIONS
       Many  of the commands can also take options. However, since users can't
       pass these options on boot, they are only meant	for  managing  scripts
       after boot and for testing. Available options are:

       -c CONFIG_FILE
	      Specify  a  different configuration file in place of the default
	      one.

       -R     When using  the  start  and  stop	 commands,  also  include  the
	      scripts' dependencies (recursively).

       -r KERNEL_RELEASE
	      When  using  the	compile, onboot, and cleanup commands, specify
	      the target kernel version rather than  using  the	 current  one.
	      Must be in the same format as `uname -r`.

       -y     Answer yes for all prompts.

       -o PATH.IMG
	      When  using  the	onboot command, specify the output path of the
	      created initramfs. When specified, the bootloader	 configuration
	      is not updated.

       -b     When  using  the	onboot	command,  backup an existing initramfs
	      image by adding a .bak extension	rather	than  overwriting  it.
	      Without this option, the initramfs is overwritten.

GLOBAL PARAMETERS
       These   parameters  affect  the	general	 behaviour  of	the  SystemTap
       initscript service. They can be specified in the configuration file.

       SCRIPT_PATH
	      Specify the absolute path of the script directory. These are the
	      scripts  on  which the initscript can operate. Scripts must have
	      the  .stp	 extension.   The   default   path   is	  /etc/system‐
	      tap/script.d.

       CONFIG_PATH
	      Specify the absolute path of the script configuration directory.
	      These configuration files contain options for specific  scripts.
	      They  must  have	the  .conf  extension.	The  default  path  is
	      /etc/systemtap/conf.d.

       CACHE_PATH
	      Specify the absolute path of the cache  directory.  The  default
	      path is /var/cache/systemtap.

       TEMP_PATH
	      Specify  the  absolute  path of the temporary directory in which
	      SystemTap makes temporary directories to	compile	 scripts.  The
	      default path is /tmp.

       STAT_PATH
	      Specify  the absolute path of the directory containing PID files
	      used to track the status of SystemTap scripts. The default  path
	      is /var/run/systemtap.

       LOG_FILE
	      Specify the absolute path of the log file. All messages are sent
	      to this file, including  compilation  and	 runtime  errors.  The
	      default path is /var/log/systemtap.log.

       PASSALL
	      If this is set yes, initscript commands that operate on multiple
	      scripts will report as failed when the action could not be  per‐
	      formed  on  at least one script. If set to no, only a warning is
	      emitted. The default is yes.

       RECURSIVE
	      If this is set yes, the initscript  will	always	follow	script
	      dependencies  recursively.  This	means that there is no need to
	      specify the -R option.  This flag is effective only if you spec‐
	      ify script(s) from the command-line. The default is no.

       AUTOCOMPILE
	      If  this	is set yes, the initscript automatically tries to com‐
	      pile specified scripts when needed if there is no	 valid	cache.
	      Otherwise, the related command simply fails. The default is yes.

       DEFAULT_START
	      Specify scripts which will be started by default. If omitted (or
	      empty), all scripts in the script directory will be started. The
	      default is "".

       ALLOW_CACHEONLY
	      If  this is set yes, the initscript will also allow operating on
	      scripts that are located in the cache directory, but not in  the
	      script directory. The default is no.

	      WARNING: the initscript may load unexpected obsolete caches with
	      this option.  The	 cache	directory  should  be  checked	before
	      enabling this option.

       LOG_BOOT_ERR
	      Because  boot-time scripts are run before the root filesystem is
	      mounted, staprun's stderr cannot be logged to  the  LOG_FILE  as
	      usual.  However,	the log can instead be output to /var/run/sys‐
	      temtap/$script.log by setting LOG_BOOT_ERR to yes. If  STAT_PATH
	      is different from the default, the log files will be moved there
	      upon executing any of the initscript commands.  The  default  is
	      no.

       Here is a global configuration file example:

	      SCRIPT_PATH=/var/systemtap/script.d/
	      PASSALL=yes
	      RECURSIVE=no

SCRIPT PARAMETERS
       These parameters affect the compilation or runtime behaviour of specif‐
       ic SystemTap scripts. They must be placed in config  files  located  in
       the CONFIG_PATH directory.

       <SCRIPT>_OPT
	      Specify  options	passed	to the stap(1) command for the SCRIPT.
	      Here, SCRIPT is the name of the script file without the .stp ex‐
	      tension. Note that the -F option is always added.

	      The  following  options  are ignored when compiling scripts: -p,
	      -m, -r, -c, -x, -e, -s, -o, -h, -V, -k.

	      The following options are ignored when running starting scripts:
	      -h,  -V, -v, -t, -p, -I, -e, -R, -r, -m, -k, -g, -P, -D, -b, -u,
	      -q, -w, -l, -d, -L, -F, and all long options.

       <SCRIPT>_REQ
	      Specify script dependencies (i.e. which script this  script  re‐
	      quires).	For  example, if foo.stp requires (or needs to run af‐
	      ter) bar.stp, set

	      foo_REQ="bar"

	      Specify multiple scripts by separating their names by spaces.

       Here is a script configuration file example:

	      script1_OPT="-o /var/log/script1.out -DRELAY_HOST=group1"
	      script2_OPT="-DRELAY_GUEST=group1"
	      script2_REQ="script1"

EXAMPLES
       INSTALLING SCRIPTS
	      We first copy a SystemTap script (e.g. "script1.stp")  into  the
	      script directory:

	      # cp script1.stp /etc/systemtap/script.d/

	      We can then set any script options, for example:

	      # vi /etc/systemtap/conf.d/group1
	      script1_OPT="-o /var/log/group1.out -DRELAY_HOST=group1"

	      If  we then install a script (e.g. "script2.stp") which shares a
	      buffer with script1, there is a dependency. In this case, we can
	      do the following:

	      # cp script2.stp /etc/systemtap/script.d/
	      # vi /etc/systemtap/conf.d/group1
	      script2_OPT="-DRELAY_GUEST=group1"
	      script2_REQ="script1"

	      This  way,  if stap(1) fails to run script1, the initscript will
	      not even try to run script2.

       TESTING
	      After installing scripts, we can test that they work  by	simply
	      doing:

	      # service systemtap start
	      # service systemtap stop

	      We could be more specific as well, for example:

	      # service systemtap start script1
	      # service systemtap stop script1

	      If there were no errors, we are ready to use it.

       ENABLING SERVICE
	      After  we're  satisfied with the scripts and their tests, we can
	      enable the SystemTap initscript service:

	      # chkconfig systemtap on

       DELETING SCRIPTS
	      Scripts are deleted by simply removing them from the script  di‐
	      rectory and removing any configuration lines specific to them:

	      # rm /etc/systemtap/script.d/script2.stp
	      # vi /etc/systemtap/conf.d/group1

	      If the script is still running, we also need to stop it:

	      # service systemtap stop script2

	      We can then also remove the cache associated with the script:

	      # service systemtap cleanup script2

       PREPARING FOR KERNEL UPDATES
	      Usually,	there is nothing to do when booting into a new kernel.
	      The initscript will see that the kernel version is different and
	      will compile the scripts. The compilation can be done beforehand
	      as well to avoid having to compile during boot by using  the  -r
	      option:

	      # service systemtap compile myscript -r <NEW_KERNEL_VERSION>

       IMPORTING COMPILED SCRIPTS
	      For  environments which lack compilation infrastructure (e.g. no
	      compilers or  debuginfo),	 such  as  a  production  system,  the
	      scripts  can  be	compiled  on another (development) machine and
	      then transferred over to the production system:

	      # service systemtap compile myscript -r \
	      >	  <KERNEL_VERSION_OF_TARGET_MACHINE>
	      # tar czf stap-scripts-<kernel-version>.tar.gz \
	      >	  /var/cache/systemtap/<kernel-version> \
	      >	  /etc/systemtap/conf.d/<configfile>

	      And then copy this package to the target machine and extract it.

       STARTING SCRIPTS DURING EARLY-BOOT
	      The initscript also allows us to start  scripts  earlier	during
	      the  boot	 process  by  creating	an  initramfs  containing  the
	      script's module. The system must be  dracut-based	 for  this  to
	      work.  Starting  a script at this stage gives access to informa‐
	      tion otherwise very hard to obtain.

	      We first install the script by copying it into the script direc‐
	      tory as usual and setting whatever options we'd like:

	      # cp myscript.stp /etc/systemtap/script.d
	      # vi /etc/systemtap/conf.d/myscript.conf

	      To add the script to the initramfs, we use the onboot command:

	      # service systemtap onboot myscript

	      If  the  script  is  not already compiled and cached, it will be
	      done at this point.  A new initramfs will then be created at the
	      default  location.  We  can use the -b option to ensure that the
	      existing initramfs is backed up. We can then restart the system.

       USING A DIFFERENT INITRAMFS
	      If we would prefer to only start the script for one boot and not
	      others, it might be easier to instead use the -o option to spec‐
	      ify a different initramfs output file:

	      # service systemtap onboot myscript \
	      >	  -o /boot/special_initramfs.img

	      Once the initramfs is created, it's simply a matter of  changing
	      the  command-line	 options at boot-time so that the new image is
	      used rather than the usual one.

       CREATING AN INITRAMFS FOR A DIFFERENT KERNEL
	      Just like the compile command, we can use the -r option to spec‐
	      ify  the	kernel for which we want to create the initramfs. This
	      is useful when we are about to upgrade and would like to prepare
	      in advance. For example:

	      # service systemtap onboot myscript \
	      >	  -r 3.12.6-200.fc19.x86_64

       REMOVING SCRIPTS FROM THE INITRAMFS
	      Finally,	to remove all script from the initramfs, we simple run
	      the onboot command without specifying any scripts:

	      # service systemtap onboot

	      This will simply create a standard initramfs without any System‐
	      Tap modules inserted.

       TROUBLESHOOTING EARLY-BOOT ISSUES
	      There  can be many reasons for which the module didn't insert or
	      did not work as expected. It may be useful to turn on dracut de‐
	      bugging  by  adding 'rdinitdebug' to the kernel command-line and
	      checking	dmesg/journalctl  -ae.	Also,  the  stderr  output  of
	      staprun  can  be	captured by setting the LOG_BOOT_ERR option to
	      yes.

SEE ALSO
       stap(1) dracut(8) new-kernel-pkg(8)

BUGS
       Use the Bugzilla link of the project web	 page  or  our	mailing	 list.
       http://sourceware.org/systemtap/, <systemtap@sourceware.org>.

								  SYSTEMTAP(8)
[top]

List of man pages available for Oracle

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net