#encoding=UTF-8
##********************************************************************
## Wrapper Properties
##
## WARNING - for any changes to take effect, you must completely
## stop the router and the wrapper. Clicking 'Restart' on your
## router console will NOT reread this file! You must
## click "Shutdown", wait 11 minutes, then start i2p.
##
## WARNING - The wrapper is NOT run (and this file is not used)
## if you start I2P with the i2prouter-nowrapper script in Linux.
## Use i2prouter or the initscript to run the wrapper.
##
## NOTE - Directory organization:
## The standard I2P Installation will set up a "split" directory structure
## with code in the install directory, data and configuration files in the
## user's home directory, and temporary files in the system temporary directory.
##
##********************************************************************
# Java Application
wrapper.java.command=java
# Specify a specific java binary:
#set.JAVA_HOME=/java/path
#wrapper.java.command=%JAVA_HOME%/bin/java
# Gentoo uses the following:
#wrapper.java.command=/etc/java-config-2/current-system-vm/bin/java
#
# Tell the Wrapper to log the full generated Java command line.
#wrapper.java.command.loglevel=INFO
##
## PORTABLE installation:
# A portable Java installation can be configured thusly:
#set.JAVA_HOME=C:\path\to\your\portable\java\installation
#wrapper.java.command=%JAVA_HOME\bin\java.exe
##
# Java Main class. This class must implement the WrapperListener interface
# or guarantee that the WrapperManager class is initialized. Helper
# classes are provided to do this for you. See the Integration section
# of the documentation for details.
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
# Java Classpath (include wrapper.jar) Add class path elements as
# needed starting from 1
#
# Doing it this way means we can add new apps without asking people
# to update their wrapper.config.
# The downside is that we lose control over classpath order,
# This is fine for new installs (where the uninstall jars
# copy.jar, delete.jar, and exec.jar containing duplicate FileUtil
# classes, or all the classes of i2p.jar, are in a different directory).
# Be sure there are no other duplicate classes.
#
wrapper.java.classpath.1=/usr/share/i2p/lib/*.jar
wrapper.java.classpath.2=/usr/share/java/wrapper.jar
# uncomment this to use the system classpath as well (e.g. to get tools.jar)
# wrapper.java.classpath.3=%CLASSPATH%
# Java Library Path (location of libjbigi/libjcpuid)
wrapper.java.library.path.1=/usr/lib/jni
wrapper.java.library.path.2=/usr/share/java/lib
# Java Bits. On applicable platforms, tells the JVM to run in 32 or 64-bit mode.
wrapper.java.additional.auto_bits=TRUE
# Java Additional Parameters
# Numbers must be consecutive (except for stripquotes)
wrapper.java.additional.1=-DloggerFilenameOverride=logs/log-router-@.txt
wrapper.java.additional.2=-Di2p.dir.base=/usr/share/i2p
wrapper.java.additional.2.stripquotes=TRUE
# Prevent the JVM from exporting stats (and thereby causing hundreds of
# ms long pauses during GC)
# http://www.evanjones.ca/jvm-mmap-pause.html
#wrapper.java.additional.3=-XX:+PerfDisableSharedMem
# On some IPv6 enabled systems, I2P and other network-enabled java applications
# may fail to start. For examples see
# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560044.
# Two things that may help if you experience this issue
# 1) "echo 0 > /proc/sys/net/ipv6/bindv6only" as root; or
# 2) uncomment the next two lines:
#wrapper.java.additional.3=-Djava.net.preferIPv4Stack=true
#wrapper.java.additional.4=-Djava.net.preferIPv6Addresses=false
# Jetty says this is a security risk
# Uncommenting this won't help as the router forces it to true
# If you really need this, you have to set it in jetty.xml
# somehow - not sure exactly but here's a clue:
# org.mortbay.util.FileResource.setCheckAliases(false)
# wrapper.java.additional.8=-Dorg.mortbay.util.FileResource.checkAliases=false
# PORTABLE installation:
# uncomment the following
#wrapper.java.additional.3=-Di2p.dir.pid="$INSTALL_PATH"
#wrapper.java.additional.3.stripquotes=TRUE
#wrapper.java.additional.4=-Di2p.dir.temp="$INSTALL_PATH"
#wrapper.java.additional.4.stripquotes=TRUE
#wrapper.java.additional.5=-Di2p.dir.config="$INSTALL_PATH"
#wrapper.java.additional.5.stripquotes=TRUE
#
# Uncomment this for better performance.
# If it doesn't work, server mode is not available in your JVM.
# This may not be required if your machine is already "server-class".
# See http://java.sun.com/j2se/1.5.0/docs/guide/vm/server-class.html
#wrapper.java.additional.5=-server
# Initial Java Heap Size (in MB)
#wrapper.java.initmemory=4
# Maximum Java Heap Size (in MB)
# The JVM's default is 64MB, and I2P can work fine in that, but to handle
# lots of I2PSnark activity in the same JVM, increasing the default max heap
# size should help. Feel free to reduce this if not using I2PSnark in the jvm
# High-bandwidth routers may need to increase to 512 or more.
#
# WARNING - for any changes to take effect, you must completely
# stop the router and the wrapper. Clicking 'Restart' on your
# router console will NOT reread this file! You must
# click "Shutdown", wait 11 minutes, then start i2p.
#
wrapper.java.maxmemory=128
# Application parameters. Add parameters as needed starting from 1
wrapper.app.parameter.1=net.i2p.router.Router
#********************************************************************
# Wrapper Logging Properties
#********************************************************************
# Enables Debug output from the Wrapper.
# wrapper.debug=TRUE
# Format of output for the console. (See docs for formats)
wrapper.console.format=PM
# Log Level for console output. (See docs for log levels)
wrapper.console.loglevel=INFO
# Log file to use for wrapper output logging.
# You may wish to change this.
# NOTE: On Linux/Mac this is overridden in the i2prouter script; changes here will have no effect.
# System temp directory:
#wrapper.logfile=/tmp/wrapper.log
# Format of output for the log file.
# The format consists of the tokens 'L' for log level, 'P' for prefix, 'D' for thread,
# 'T' for time, 'Z' for millisecond time, and 'M' for message
# Unfortunately the log timezone cannot be changed, see
# http://www.nabble.com/Log-message-timezone-td23651317.html
wrapper.logfile.format=TM
# Log Level for log file output. (See docs for log levels)
wrapper.logfile.loglevel=INFO
# Maximum size that the log file will be allowed to grow to before
# the log is rolled. Size is specified in bytes. The default value
# of 0, disables log rolling. May abbreviate with the 'k' (kb) or
# 'm' (mb) suffix. For example: 10m = 10 megabytes.
wrapper.logfile.maxsize=4m
# Maximum number of rolled log files which will be allowed before old
# files are deleted. The default value of 0 implies no limit.
wrapper.logfile.maxfiles=2
# Log Level for sys/event log output. (See docs for log levels)
wrapper.syslog.loglevel=NONE
# these will shut down or crash the JVM
wrapper.signal.mode.usr1=IGNORE
wrapper.signal.mode.usr2=IGNORE
# choose what to do if the JVM kills itself based on the exit code
wrapper.on_exit.default=SHUTDOWN
wrapper.on_exit.0=SHUTDOWN
wrapper.on_exit.1=SHUTDOWN
# OOM
wrapper.on_exit.10=RESTART
# graceful shutdown
wrapper.on_exit.2=SHUTDOWN
# hard shutdown
wrapper.on_exit.3=SHUTDOWN
# hard restart
wrapper.on_exit.4=RESTART
# hard restart
wrapper.on_exit.5=RESTART
# the router may take a few seconds to save state, etc
wrapper.jvm_exit.timeout=60
# give the OS 60s to clear all the old sockets / etc before restarting
# Let's change the default from 60 to 15 seconds and see if anyone moans..
wrapper.restart.delay=15
wrapper.ping.interval=300
# The ping timeout must be at least 5 seconds longer than the value of wrapper.ping.interval.
# Extend this if you are getting 'JVM appears hung' shutdowns.
wrapper.ping.timeout=320
# use the wrapper's internal timer thread. otherwise this would
# force a restart of the router during daylight savings time as well
# as any time that the OS clock changes
wrapper.use_system_time=false
# pid file for the JVM
# If you plan to have multiple wrappers running on the same machine,
# you should copy this file, change the location or file name,
# and edit the i2prouter script to change the WRAPPER_CONF setting
# to point to the new wrapper.config location.
# Windows users may wish to uncomment.
# Linux/Mac users, do not set here, see settings in the i2prouter script.
# Directory must exist or the wrapper will fail to start.
# System temp directory:
#wrapper.java.pidfile=/tmp/routerjvm.pid
#
# From i2prouter:
#
# PIDDIR="."
# APP_NAME="i2p"
# PIDFILE="$PIDDIR/$APP_NAME.pid"
#
# This means i2prouter looks for './i2p.pid'.
# See comments above for wrapper.java.pidfile
# Windows users may wish to uncomment.
# Linux/Mac users, do not set here, see settings in the i2prouter script.
# Directory must exist or the wrapper will fail to start.
# System temp directory:
#wrapper.pidfile=/tmp/i2p.pid
#********************************************************************
# Wrapper General Properties
#********************************************************************
# Allow for the use of non-contiguous numbered properties
wrapper.ignore_sequence_gaps=TRUE
# Title to use when running as a console
wrapper.console.title=I2P Service
# Set permissions used when creating files
# See http://wrapper.tanukisoftware.com/doc/english/prop-umask.html
# for a detailed explanation of these settings.
wrapper.umask=0022
wrapper.java.umask=0022
wrapper.logfile.umask=0077
# http://wrapper.tanukisoftware.com/doc/english/prop-check-deadlock.html
# requires wrapper 3.5.0 or higher
# interval is seconds
wrapper.check.deadlock=TRUE
wrapper.check.deadlock.interval=3699
wrapper.check.deadlock.action=DUMP,RESTART
wrapper.check.deadlock.output=FULL