Я использую Ubuntu и нашел этот сценарий init.d для LibreOffice без головы.
Проблема в том, что он не останавливает процесс, когда его просят "остановить". Любая помощь с благодарностью.
Два других вопроса: я видел команду start-stop-daemon, используемую в других сценариях init.d - в чем преимущество перед подходом, используемым в этом сценарии? Кроме того, я хочу иметь возможность запускать этот скрипт как непривилегированный пользователь, но он говорит, что не может создать файл PID. Какой "правильный" способ разрешить непривилегированным пользователям запускать этот скрипт?
Спасибо!
#!/bin/bash
# libreoffice.org headless server script
#
# chkconfig: 2345 80 30
# description: headless libreoffice server script
# processname: libreoffice
#
# Author: Vic Vijayakumar
# Modified by Federico Ch. Tomasczik
# Modified by Manuel Vega Ulloa
OOo_HOME=/usr/bin
SOFFICE_PATH=$OOo_HOME/soffice
PIDFILE=/var/run/libreoffice-server.pid
set -e
case "$1" in
start)
if [ -f $PIDFILE ]; then
echo "LibreOffice headless server has already started."
sleep 5
exit
fi
echo "Starting LibreOffice headless server"
$SOFFICE_PATH --headless --nologo --nofirststartwizard --accept="socket,host=127.0.0.1,port=2002;urp" & > /dev/null 2>&1
touch $PIDFILE
;;
stop)
if [ -f $PIDFILE ]; then
echo "Stopping LibreOffice headless server."
#killall -9 soffice
#killall -9 soffice.bin
killall -9 oosplash
#start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE --exec $DAEMON || true
rm -f $PIDFILE
exit
fi
echo "LibreOffice headless server is not running."
exit
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0