Map Java Thread Details to Linux processes

  1. Search for Java PID:
    top
    Example ouput:4170 blalub 25 0 6309m 5.2g 10m R 97.5 33.3 732:27.41 java
  2. Get a listing of all Java threads in Java Process with PID 4170:
    top -H -p 4170
  3. Find PID of JBoss:
    jps -l
    Example output: 4170 org.jboss.Main
  4. Using Server PID (4170) for thread dump
    jstack -l 4170 > jstack.log
  5. To find threads from the listing (top -H -p) in jstack.log thread PIDs have to be converted from decimal (listing) to nid hexdecimal (jstack) in jstack output

Hex converter: http://www.binaryhexconverter.com/decimal-to-hex-converter

Inspiration: http://www.lrr.in.tum.de/~petkovve/java_threads_stack.html

When 0 is true – grep exit status

If you want to use grep results in bash scripts then it can get confusing. Because if grep returns a result then its exit status is 0; if it does not return anything the exit status is 1.

So these two line mean, if my script my_clever_script.pl is currently not running.

ps ax | grep my_clever_script.pl | grep -v grep
if [ $? -eq 1 ]; then

 

http://www.gnu.org/software/grep/manual/html_node/Exit-Status.html

vimdiff how to

start vim diff

vimdiff file1 file2

essential commands

ctrl+w ctrl+w -> move cursor to other window
do -> diff obtain get currently marked changes from other window
dp -> diffput : put currently marked change to other window
zo -> open fold
zc -> close fold
:set noscrollbind -> temporarily disable simultaneous scrolling on both buffers
:set scrollbind -> reenable simultaneous scrolling
:qa -> quit all
:wqa -> save all and quit all