It's possible to get Openoffice to accept UNO connections over a unix domain socket with:
$soffice -headless -invisible -nocrashreport -nodefault -nologo -nofirststartwizard -norestore -conversionmode -accept='pipe,name=marcin_OOffice;urp;StarOffice.ComponentContext'
netstat shows that the domain socket is created at /tmp/OSL_PIPE_1001_marcin_OOffice
. That's fine, but as I will be running this on a shared host, I'd like to have the socket somewhere else, e.g. in my home drive. However, passing a full file path (either relative or absolute) as the name
parameter results in no socket being created.
Is there a way I can influence where the socket is created, e.g. with an environment variable?
EDIT: Setting TMP
and TMPDIR
environment variables does not affect this behaviour. I'm running this on linux.
Since there doesn't seem to be an "official" way of controlling where the socket gets created you can go down the "sledgehammer to crack a nutshell" road by writing your own shared object that interposes on
connect()
and rewrites anyAF_FILE
addresses in /tmp:Compile with:
And then run as:
which seems to work from reading the strace output (but I have no idea how to actually exercise the socket to prove that it really works).