2012-03-26 15 views
8

मुझे स्टार्ट-स्टॉप-डिमन का उपयोग करके एक इनिट स्क्रिप्ट में ठीक से लॉन्च करने के लिए जावा प्रोग्राम प्राप्त करने का समय लगता है। मैंने init स्क्रिप्ट लिखी है और ऐसा लगता है लेकिन चलने वाले कार्यक्रम का प्रतिनिधित्व करने के बाद कभी भी प्रक्रिया नहीं होती है।स्टार्ट-स्टॉप-डिमन और जावा प्रोग्राम

यहाँ मेरी init स्क्रिप्ट

#! /bin/sh 
# 
# 

DAEMON="/usr/bin/java" 
DAEMON_ARGS="-server -cp <bunch of RMI arguments and classpath stuff> -jar <absolute path>/myprog.jar" 

PIDFILE="/var/run/myprog.pid" 

case "$1" in 
start) 
    echo -n "Starting myprog" 
    start-stop-daemon --start --pidfile "$PIDFILE" --chuid "myuser" --verbose --background --make-pidfile --startas "$DAEMON" -- $DAEMON_ARGS 
    echo "." 
;; 

का एक टुकड़ा है जब मैं /etc/init.d के माध्यम से इसे शुरू करने के लिए मैं निम्नलिखित मिल की कोशिश:

/etc/init.d#/etc/init .D/myscript शुरू

शुरू myprogStarting/usr/bin/जावा ...

Detatching /usr/bin/java...done शुरू करने के लिए।

उसके बाद, वहाँ कोई जावा दुभाषिया प्रक्रिया चल रहा है, --exec की myprog.jar

मैं कोशिश की है विभिन्न संयोजनों को क्रियान्वित करने, अधिक या कम एक ही परिणाम के साथ --start। अगर मुझे कुछ और दृश्यता मिल सकती है, तो मुझे यकीन है कि मैं इसे समझ सकता हूं लेकिन मुझे यकीन नहीं है कि यह कैसे करना है।

कोई सुझाव?

(मैं एक एम्बेडेड एआरएम मंच पर Angstrom चल रहा हूँ तो जावा सेवा आवरण वास्तव में एक व्यवहार्य विकल्प नहीं है, यानी। मैं एआरएम के लिए अपने उपलब्ध नहीं लगता कि)

मैं अटक इसलिए किसी भी सलाह कर रहा हूँ वास्तव में सराहना की जाएगी।

धन्यवाद।

+0

मुझे यह इंगित करना चाहिए कि मेरा प्रोग्राम वर्तमान में डेमॉन इंटरफ़ेस को लागू नहीं करता है। क्या यह आवश्यक है? – ColonelPackage

उत्तर

-4

आप इसे चलाने के लिए एक तरीका ढूंढ रहे हैं और इसकी निगरानी कर सकते हैं?

क्या आपने अभी तक एमएस बैच डॉस प्रोग्रामिंग की कोशिश की है?

उदाहरण

@echo off 
cd DirectoryOfFiles 
echo "Starting up..." 
java -Xmx512m mainFile 
pause 

mainFile = main.java के लिए

? DirectoryOfFiles = निर्देशिका आप सभी वर्ग फ़ाइलों, में अगर फाइल चल ही निर्देशिका है सिर्फ इस लाइन

को दूर किया है उम्मीद है कि यह आप

+0

मैं बस लॉन्च करने के लिए चीज प्राप्त करने की कोशिश कर रहा हूं, अवधि। एक बार जब मैं पुष्टि कर सकता हूं कि यह वास्तव में चल रहा है, तो मैं इसकी निगरानी में कम दिलचस्प हूं।मेरा मंच एक एम्बेडेड लिनक्स (एंगस्ट्रॉम) है इसलिए एमएस बैच डॉस प्रोग्रामिंग एक विकल्प नहीं है। फिर भी सुझाव के लिए धन्यवाद। – ColonelPackage

14

दो बातें जो चाह रहे हैं की कोशिश करना, पहले दूर करने --startas कोशिश करते हैं और है इसलिए जैसे बजाय --exec का उपयोग करें:

start-stop-daemon --start --pidfile "$PIDFILE" --chuid "myuser" --verbose --background --make-pidfile --exec "$DAEMON" -- $DAEMON_ARGS 

दूसरा जब से तुम --background उपयोग कर रहे हैं, --chdir विकल्प निर्दिष्ट करने का प्रयास करता है, तो आप नहीं कार्यशील निर्देशिका / किया जा रहा समाप्त होता है है।

मैं अपने मुद्दे को हल करने की कोशिश कर रहा हूं जो अंततः --chdir द्वारा हल किया गया था, मुझे विश्वास है कि यह आपके भी हल करेगा।

+0

--chdir मेरी समस्या को हल करने में मेरी मदद करता है, धन्यवाद – Lukino

+0

इस कहानी में सबसे निराशाजनक बिट यह है कि 'स्टार्ट-स्टॉप-डिमन' सभी प्रोग्राम आउटपुट को निगलता है अगर अन्यथा नहीं बताया जाता है –

+0

@Ivan: यह वर्कअराउंड देखें: http: // stackoverflow .com/एक/21029952/400925 – Francois

संबंधित मुद्दे