Я использовал режим сокетов до сих пор.Только что протестированный канал на моей машине с помощью cmd:
/usr/lib/openoffice/program/soffice.bin -accept='pipe,name=foo;urp;StarOffice.ServiceManager' -nologo -headless -nofirststartwizard -invisible
$ lsof -c soffice|egrep "pipe|foo"
soffice.b 6698 user 3r FIFO 0,8 0t0 15766935 pipe
soffice.b 6698 user 4w FIFO 0,8 0t0 15766935 pipe
soffice.b 6698 user 15u unix 0xffff88009773ed00 0t0 15767001 /tmp/OSL_PIPE_1000_foo
lsof показывает, что существует именованный сокет foo и все в порядке, чтобы получить соединение в Python.В начале эксперимента были случаи, когда foo не генерировался, и, следовательно, возникало исключение com.sun.star.connection.NoConnectException.Но я не могу повторить эту ошибку после этого.
Мы использовали безголовый аппарат в режиме сокетов в производстве уже несколько лет, и он очень стабильный и достаточно быстрый.Кажется, что конвейерный режим здесь все еще зависит от сокета Unix, поэтому я предлагаю использовать режим сокета.