.\" -*- nroff -*-
.TH WINESERVER 1 "October 2005" "@PACKAGE_STRING@" "Windows on Unix"
.SH NAME
wineserver \- the Wine server
.SH SYNOPSIS
.BI wineserver\  [options]
.SH DESCRIPTION
.B wineserver
is a daemon process that provides to Wine roughly the same services
that the Windows kernel provides on Windows.
.PP
.B wineserver
is normally launched automatically when starting \fBwine(1)\fR, so you
shouldn't have to worry about it. In some cases however, it can be
useful to start \fBwineserver\fR explicitly with different options, as
explained below.
.SH OPTIONS
.TP
.BI \-d [n]
Set the debug level to
.I n.
0 means no debugging information, 1 is the normal level, and 2 is for
extra verbose debugging. If
.I n
is not specified, the default is 1. The debug output will be sent to
stderr. \fBwine(1)\fR will automatically set the debug level when
starting \fBwineserver\fR if the +server option is set in the
WINEDEBUG variable.
.TP
.B \-f
Make the server remain in the foreground for easier debugging, for
instance when running it under a debugger.
.TP
.B \-h
Display a help message.
.TP
.BI \-k [n]
Kill the currently running
.B wineserver,
optionally by sending signal \fIn\fR. If no signal is specified, sends
a SIGINT first and then a SIGKILL.  The instance of \fBwineserver\fR
that is killed is selected based on the WINEPREFIX environment
variable.
.TP
.BI \-p [n]
Specify the \fBwineserver\fR persistence delay, i.e. the amount of
time that the server will keep running when all client processes have
terminated. This avoids the cost of shutting down and starting again
when programs are launched in quick succession. The timeout \fIn\fR is
in seconds, the default value is 3 seconds. If \fIn\fR is not
specified, the server stays around forever.
.TP
.B \-v
Display version information and exit.
.TP
.B \-w
Wait until the currently running
.B wineserver
terminates.
.SH ENVIRONMENT VARIABLES
.TP
.I WINEPREFIX
If set, the content of this variable is taken as the name of the directory where
.B wineserver
stores its data (the default is \fI$HOME/.wine\fR). All
.B wine
processes using the same
.B wineserver
(i.e.: same user) share certain things like registry, shared memory
and kernel objects.
By setting
.I WINEPREFIX
to different values for different Wine processes, it is possible to
run a number of truly independent Wine sessions.
.TP
.I WINESERVER
Specifies the path and name of the
.B wineserver
binary that will be launched automatically by \fBwine\fR. If not set,
\fBwine\fR will try to load
.I @bindir@/wineserver,
and if this doesn't exist it will then look for a file named
\fIwineserver\fR in the path and in a few other likely locations.
.SH FILES
.TP
.B ~/.wine
Directory containing user specific data managed by
.B wine.
.TP
.BI /tmp/.wine- uid
The directory containing the server Unix socket and the lock
file. These files are created in a subdirectory generated from the
WINEPREFIX directory device and inode numbers.
.SH AUTHORS
The original author of
.B wineserver
is Alexandre Julliard. Many other people have contributed new features
and bug fixes. Please check the file Changelog in the Wine
distribution for the complete details.
.SH BUGS
If you find a bug, please submit a bug report at
.UR http://bugs.winehq.org
.B http://bugs.winehq.org.
.UE
.SH AVAILABILITY
.B wineserver
is part of the Wine distribution, which is available through WineHQ,
the Wine development headquarters, at
.UR http://www.winehq.org/
.B http://www.winehq.org/.
.UE
.SH "SEE ALSO"
.BR wine (1).
