2012-03-26 16 views
8

Start-stop-daemon kullanarak bir init betiğinde düzgün bir şekilde başlatılması için bir java programı almanın vaktini yaşıyorum. Init betiğini yazdım ve çalışıyor gibi görünüyor, ancak daha sonra çalışan programı temsil eden bir süreç yok.start-stop-daemon ve java programı

/etc/init.d#/etc/init: Ben şu olsun /etc/init.d yoluyla başlatmaya çalıştığınızda İşte

benim başlatma betiği

#! /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 "." 
;; 

snippet'idir var .d/myscript başlatmak

başlayan myprogStarting/usr/bin/java ...

koparak /usr/bin/java...done başlatın.

.

Sonrasında --exec ait myprog.jar

denedim çeşitli kombinasyonları yürütülmesi, hiçbir java tercüman süreci koşu, orada aşağı yukarı aynı sonuçlarla --start. Ne olup bittiğine dair daha fazla görünürlük elde edebilirsem, eminim bunu çözebilirim ama bunu nasıl yapacağımı bile bilmiyorum.

Herhangi bir öneriniz var mı?

yüzden herhangi bir tavsiye şaşırıp

(Java Servis Sarıcı gerçekten uygun bir seçenek değildir bu yüzden yani. Ben ARM için mevcut sanmıyorum gömülü ARM platformunda Angstromu koşuyorum) gerçekten takdir olurdu.

Teşekkürler.

+0

Programımın şu anda Daemon arabirimini UYGULAMADIĞINI belirtmeliyim. Bu gerekli mi? – ColonelPackage

cevap

-4

Çalıştırmak ve izlemek için bir yol mu arıyorsunuz?

msn toplu programlamayı denediniz mi?

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

mainFile = main.java örneğin

için

? DirectoryOfFiles = dosyayı çalıştıran aynı dizin ise sadece bu çizgiyi

kaldırmak, tüm sınıf dosyaları var dizini umarım bu ilk --startas kaldırmayı deneyin ve denemek için

+0

Sadece fırlatılacak olan şeyi elde etmeye çalışıyorum, dönem. Aslında çalıştığını teyit edince, izlemede daha az ilginçim.Platformum gömülü bir linux (Angstrom), bu yüzden ms yığın programlaması bir seçenek değil. Öneri için teşekkürler. – ColonelPackage

14

İki şeyleri soruyorsun budur şöyle yerine --exec kullanın: Eğer değil çalışma dizini / olmak biter yaparsanız --background kullandığınız beri

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

İkincisi, --chdir seçeneği belirtmeyi deneyin.

Sonunda, --chdir tarafından giderilen sorunumu çözmeye çalışırken sorunuzu tökezledim, sizin de çözeceğine inanıyorum.

+0

--chdir sorunu çözmemde bana yardımcı ol, teşekkürler – Lukino

+0

Bu hikayedeki en sinir bozucu bit, aksi takdirde –

+0

@Ivan’a anlatılmamışsa tüm program çıktısını yutar: Bu geçici çözüm: http: // stackoverflow com/a/21029952/400925 – Francois