|
| 1 | +# Windows System Service |
| 2 | + |
| 3 | +This service is only included in full builds. |
| 4 | + |
| 5 | + |
| 6 | +The [`Xpra-Service.cpp`](https://github.com/Xpra-org/xpra/blob/master/packaging/MSWindows/service/Xpra-Service.cpp) |
| 7 | +is compiled into `Xpra-Service.exe` using `vscode` or just via `msbuild` during the build. |
| 8 | + |
| 9 | +This service can be installed by running `./Xpra-Service.exe install`, |
| 10 | +then it can be managed from the GUI `services.msc` tool. |
| 11 | +It is not configured to start automatically. \ |
| 12 | +Use `./Xpra-Service.exe uninstall` to unregister it. |
| 13 | + |
| 14 | +The xpra `.exe` installer should have created the registry key `HKLM\Software\Xpra\InstallPath`, |
| 15 | +typically pointing to `C:\Program Files\Xpra`. |
| 16 | + |
| 17 | +The `start` action for this service will run `Xpra-Proxy.exe start` from this `InstallPath`. |
| 18 | + |
| 19 | +The `Xpra-Proxy.exe` scripts is a simple delegation wrapper ([source](https://github.com/Xpra-org/xpra/blob/master/xpra/platform/win32/scripts/proxy.py)) |
| 20 | +packaged as a GUI application which just calls |
| 21 | +[`xpra.platform.win32.service`](https://github.com/Xpra-org/xpra/blob/master/xpra/platform/win32/service.py). |
| 22 | + |
| 23 | +This service just starts an xpra proxy server using the hard-coded arguments: |
| 24 | +```shell |
| 25 | +Xpra proxy --bind-tcp=0.0.0.0:14500,auth=sys,client-username=true,verify-username=true |
| 26 | +``` |
| 27 | + |
| 28 | +The proxy will log to a file. |
| 29 | +The exact path of this log file can be obtained by querying the proxy server: |
| 30 | +```shell |
| 31 | +Xpra_cmd info tcp://localhost:14500/ | grep log-file |
| 32 | +``` |
| 33 | +Normally, it should be `C:\Windows\System32\config\systemprofile\AppData\Local\Xpra\System-Proxy.log` |
| 34 | + |
| 35 | +--- |
| 36 | + |
| 37 | +Work in progress: it isn't entirely clear which API the proxy |
| 38 | +is meant to use to start a new session, station and desktop once users |
| 39 | +have authenticated. |
| 40 | +At time of writing, the proxy server can only mediate for existing sessions, |
| 41 | +and only for `Administrators`. |
0 commit comments