init.d OpenOffice / LibreOffice हेडलेस के लिए स्क्रिप्ट प्रक्रिया को रोकती नहीं है


1

मैं उबंटू का उपयोग कर रहा हूं और लिबर ऑफिस हेडलेस के लिए इस init.d स्क्रिप्ट को पाया।

समस्या यह है कि यह "स्टॉप" के लिए पूछे जाने पर प्रक्रिया को रोकना प्रतीत नहीं होता है। किसी भी मदद की बहुत सराहना की।

दो अन्य प्रश्न: मैंने अन्य 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

जवाबों:


2

आपको सही तरीके से PID और PIDFILE का उपयोग करना चाहिए। उदाहरण के लिए (मेरे काम की स्क्रिप्ट से अंश):

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
      PID=`ps ax|grep "soffice.bin --headless"|grep -v grep|cut -d \  -f 1`
      echo $PID> $PIDFILE
    ;;
    stop)
    if [ -f $PIDFILE ]; then
      echo "Stopping LibreOffice headless server."
      kill `cat $PIDFILE`
      rm -f $PIDFILE
      exit
    fi
      echo "LibreOffice headless server is not running."
      exit
    ;;
    *)
    echo "Usage: $0 {start|stop}"
    exit 1
esac
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.