2010-04-27 13 views
6

Bu soruya SW üzerinde defalarca yanıt verilmesini sağladığım halde, en iyi yaklaşımın ne olduğuna dair bir sonuç bulamadım.Linux'ta Java uygulamasını uygulamaya yönelik en iyi yöntem

Herhangi bir harici sarıcı kullanmak istemiyorum, çünkü java sürecini daha düşük bir seviyede, daha sonra performansları düşüren düşük bir seviyede başlatıyordum, bu yüzden yalnızca kabuk yöntemlerinin kaldığı görünüyor.

Bugüne kadar 3 farklı kabuk yöntemleri bulundu

:

  • başla-dur-cin
  • RedHat cin init.d fonksiyonu
  • açılışta nohup/sonra başlayacaktır inkâr

neler insanlar kullanıyorsunuz ve en güvenilir yöntem olarak önerebilir misiniz?

Teşekkürler. Sen screen kullanarak deneyebilirsiniz

+0

"Sizin ne kullanıyorsunuz" yoklama soruları SO – Raedwald

+0

için konu dışıdır "Sizin neyi kullanıyorsunuz?" Konusu IS, insanların sadece fikirleri temel aldıkları için kapatmaya karar vermeniz çok rahatsız edici. İronik değil mi? – Nazar

cevap

5

Bunun standart cevabı jsvc gibi görünmekle birlikte, djb'nin daemon tools ürününü kullanarak daemon içine herhangi bir şey yapmanın harika bir yolunu bulmaktayım.

Tüm bunlardan birini başlatıp/durdurabilmenizi ve büyük bir oturum açmayı sağlayan basit bir yöntemle java, python ve birkaç kabuk betiği var.

Orijinal olarak tasarlanan initctl üzerindeki kök olarak daemontools'u çalıştırdım, ancak birkaç ay sonra, normal bir kullanıcı tarafından manuel olarak çalıştırmaya ve daha iyi günlüğe kaydetme için svscan-start'u kullanmaya karar verdim.

-1

+0

Tamamen korkunç bir öneri yok, bunu belli şeyler için yapıyorum. Ama bence bu bir şeyi bir şey gibi çalıştırmak niyetinden çok uzak. Yine de öneri için teşekkürler. –

1

Tamamen dış sarmalayıcılarını ekarte olmaz (Başlat ekranını, ardından [pes] ekranını kapatın, java programı başlatmak).
Tanuki Wrapper http://wrapper.tanukisoftware.org/'u kullanarak saygın bir yazılım fark ettim. Bu, programın aynı zamanda, tutarlı bir yaklaşımla, bir pencere servisi olarak kolayca çalıştırılabildiği ek avantajına sahiptir. Bir cini olarak arka planda bir uygulama çalıştırmak istiyorsanız

+0

Bunu Linux'ta bir Windows servisi olarak çalıştıramayacak. – danben

+0

Gerçekten de çok yakın bir zamanda tek tek gelişmeleri izlemedim, ama bu konu hiç de önemli değildi. Uygulamanın neden sadece Linux üzerinde çalışmasını kısıtlıyorsunuz? Belki de diğerleri uygulamayı çalıştırmak ve kendilerini sadece pencerelerde çalışabilecekleri bir konumda bulmak zorunda kalabilir. Potansiyel kullanıcıları kovalamak yerine, neden kısıtlamaları kısıtlamamalı ve yeniden kullanımları teşvik etmelidir. – crowne

5

, ben böyle yapmak:

nohup java -jar MyJar &

özellikle güvenilmez bir şey bu konuda var - nohup kesmek zaman SIGHUP almasını tutar ve &, arka planda bir işlem çalıştırır.

İsteğe bağlı olarak, çıkışı nohup.out'dan başka bir şeye yönlendirebilirsiniz.

2

RedHat daemon init.d işlevini kullanırdım. Bu, sunucunun yaptığı uygulamaların yeniden başlatılmasını sağlar. Çalışan nohup, sunucu yeniden başlatmayı vb. Yapmaz.

1

Geçmişte Akuma ürününü kullandım. Bir Java kütüphanesi olması gerçekten işleri kolaylaştırıyor, işlevselliği gömmek çok önemsiz.

3

http://yajsw.sourceforge.net/'a bakın. Ücretsiz 64-bit desteği sunan TanukiSoftware Java Service Wrapper'ın ücretsiz ve biraz uyumlu yeniden kullanımı. Ayrıca, YAJSW, JSW, ACD ve L4J için bir karşılaştırma tablosu da vardır.

İlgili konular