aboutsummaryrefslogtreecommitdiffstats
path: root/i2p/wrapper.config
blob: ca30fd6a3657b496ad52aa48391f02b3dbc0d879 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
#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