1 #
   2 # Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
   3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4 #
   5 # This code is free software; you can redistribute it and/or modify it
   6 # under the terms of the GNU General Public License version 2 only, as
   7 # published by the Free Software Foundation.
   8 #
   9 # This code is distributed in the hope that it will be useful, but WITHOUT
  10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12 # version 2 for more details (a copy is included in the LICENSE file that
  13 # accompanied this code).
  14 #
  15 # You should have received a copy of the GNU General Public License version
  16 # 2 along with this work; if not, write to the Free Software Foundation,
  17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18 #
  19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20 # or visit www.oracle.com if you need additional information or have any
  21 # questions.
  22 #
  23 
  24 config.execSuffix=
  25 config.getChildren.pattern=%p
  26 config.getChildren.app=ps
  27 config.getChildren.args=--no-headers -o pid --ppid %p
  28 ################################################################################
  29 # process info to gather
  30 ################################################################################
  31 onTimeout=\
  32   native.pmap.normal native.pmap.everything \
  33   native.files native.locks \
  34   native.stack native.core
  35 ################################################################################
  36 native.pattern=%p
  37 native.javaOnly=false
  38 native.args=%p
  39 
  40 native.pmap.app=pmap
  41 native.pmap.normal.args=-p %p
  42 native.pmap.everything.args=-XXp %p
  43 
  44 native.files.app=lsof
  45 native.files.args=-p %p
  46 
  47 native.locks.app=lslocks
  48 native.locks.args=-u --pid %p
  49 
  50 native.stack.app=gdb
  51 native.stack.args=--pid=%p\0-batch\0-ex\0thread apply all backtrace
  52 native.stack.args.delimiter=\0
  53 native.stack.params.repeat=6
  54 
  55 # has to be the last command
  56 native.core.app=kill
  57 native.core.args=-ABRT %p
  58 ################################################################################
  59 # environment info to gather
  60 ################################################################################
  61 environment=\
  62   users.current users.logged users.last \
  63   disk \
  64   env \
  65   system.dmesg system.sysctl \
  66   process.top process.ps \
  67   memory.free memory.vmstat.default memory.vmstat.statistics \
  68         memory.vmstat.slabinfo memory.vmstat.disk \
  69   files \
  70   locks \
  71   net.sockets net.statistics net.ifconfig \
  72   screenshot
  73 ################################################################################
  74 users.current.app=id
  75 users.current.args=-a
  76 users.logged.app=who
  77 users.logged.args=-a
  78 users.last.app=last
  79 users.last.args=-10
  80 
  81 disk.app=df
  82 disk.args=-h
  83 
  84 env.app=env
  85 
  86 system.dmesg.app=dmesg
  87 system.sysctl.app=sysctl
  88 system.sysctl.args=-a
  89 
  90 process.top.app=top
  91 process.top.args=-b -n 1
  92 process.ps.app=ps
  93 process.ps.args=-Leo pid,pcpu,cputime,start,pmem,vsz,rssize,stackp,stat,sgi_p,wchan,user,args
  94 
  95 memory.free.app=free
  96 memory.free.args=-h
  97 memory.vmstat.app=vmstat
  98 memory.vmstat.default.args=3 3
  99 memory.vmstat.statistics.args=-s
 100 memory.vmstat.slabinfo.args=-m
 101 memory.vmstat.disk.args=-d
 102 
 103 files.app=lsof
 104 locks.app=lslocks
 105 locks.args=-u
 106 
 107 net.sockets.app=netstat
 108 net.sockets.args=-aeeopv
 109 net.statistics.app=netstat
 110 net.statistics.args=-sv
 111 net.ifconfig.app=ifconfig
 112 net.ifconfig.args=-a
 113 
 114 screenshot.app=bash
 115 screenshot.args=-c\0\
 116     echo '\
 117         var robot = new java.awt.Robot();\
 118         var ge = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment();\
 119         var bounds = ge.getDefaultScreenDevice().getDefaultConfiguration().getBounds();\
 120         var capture = robot.createScreenCapture(bounds);\
 121         var file = new java.io.File("screen.png");\
 122         javax.imageio.ImageIO.write(capture, "png", file);\
 123     ' | jshell -
 124 screenshot.args.delimiter=\0
 125 ################################################################################
 126