2017-09-12 107 views
13

Bir AWS EC örneğine (Linux ortamı) bir kavanoz yerleştirdiğim bir Spring Boot (1.5.4.RELEASE) tabanlı mikro hizmet var. Ben başlatmak ve bu kullanarak onu durduramaz Linux hizmeti olarak bu bahar Boot Microservice yapılandırabilirsiniz nasılNasıl Spring Boot Microservice ile bir log4j.properties dosya ve Linux Hizmet Olarak Çalıştır?

java -jar myapp.jar -Dlogging.config=/path/to/log4j.properties 

: Şimdi ben de böyle microservice başlatmak için bir dış log4j.properties dosyası yüzden gelmiş dağıtma am bayraklar:

sudo service myapp start | stop | status | restart 

Çok teşekkür ederim. Eğer hizmet olarak bunu kontrol yapabilir sizin springboot uygulamasına sembolik bağlantıyı kullanarak

+0

bir java hizmet sarmalayıcı yazmak gerekir. Bu örnek yararlı olabilir. http: //www.jcgonzalez.com/linux-java-service-wrapper-example – edt

+1

Bu, https://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html adresindeki resmi belgelerde oldukça iyi açıklanmıştır. # deployment-initd-service – Val

+0

Umarim cevaplarin yaninda ulasabilirsiniz https://stackoverflow.com/questions/21503883/spring-boot-application-as-a-service –

cevap

5

...

sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp 

uygulamanıza içine paketlenmiş birini geçersiz kılmak için myapp klasörüne bir application.properties olabilir yerleştirmek. Bu şekilde komut satırı anahtarlarını kullanmanıza gerek yoktur. Günlük yapılandırmanızın yolunu, içerisindeki logging.config özellik anahtarına değer olarak belirtmeniz yeterlidir. Bununla birlikte, bu çözümün gerçekten en iyi uygulama olmadığını da unutmayın. Üretimde bir grup hizmet verdiğinizde, konfigürasyonu dışlamak için muhtemelen spring cloud config hatları boyunca bir şeyler aramak istersiniz ve muhtemelen günlüklerinizin tüm servislerinize genel bir bakış sağlayan merkezi bir hizmette toplanmasını da isteyebilirsiniz. 'tek bir yerde oturum açar. spring-boot deployment gereğince

+1

Lütfen bir açıklama yazın. –

+0

@ Jörg, Ama bu kısmı nasıl yazarım (symoblic linkini verirken): -Dlogging.config =/path/to/log4j.properties –

+0

@PacificNW_Lover sabırla bir kez daha sormak için teşekkürler - güncellememi görün –

1

,

Tam çalıştırılabilir kavanoz başka yürütülebilir ikili gibi yürütülebilir veya init.d veya systemd

ile kaydedilebilir emin fişi kullanarak uygulamanızı oluşturmak olun aşağıdaki -doğal (ortak bağlantı gradle sürümü):

<plugin> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-maven-plugin</artifactId> 
    <configuration> 
     <executable>true</executable> 
    </configuration> 
</plugin> 

ve Jörg ile gösterildiği gibi, c init.d içindeki sembolik bir bağlantı REATE: basitleştirilmiş versiyonu :)

Daha Sorunuzun olduğunu

sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp 

, sen init özelleştirmek gerekir ve bu bir conf dosyası tarafından yapılabilir - belirtilen tüm dokümantasyonda. JARFILE ve APP_NAME hariç

, ayarlar bir .conf dosyasını kullanarak konfigüre olabilir. Dosya jar dosyasının yanında beklenir ve aynı ada sahip ancak .jar yerine .conf ile eklenir. Örneğin, /var/myapp/myapp.jar adlı bir kavanoz /var/myapp/myapp.conf adlı yapılandırma dosyasını kullanır.

örneğin: myapp.conf

JAVA_OPTS=-Xmx1024M 
LOG_FOLDER=/custom/log/folder