Bir önceki yazıda Spring Boot uygulamasını nasıl remote server’a deploy edeceğimiz görmüştük. Şimdi ise deploy ettiğimiz uygulamayı Linux makine üzerinde nasıl çalıştırabileceğimizi inceleyeceğiz. Spring-Boot projeleri gömülü olarak Tomcat içerdiği için bir application server’a ihtiyaç duymuyor. Bu özelliği kullanarak uygulamamızı Linux service olarak çalıştırmayı deneyeceğiz.
1. Executable
Build tool olarak Maven kullanıyorsak;
1 2 3 4 5 6 7 8 9 10 11 |
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <executable>true</executable> </configuration> </plugin> |
Gradle kullanıyorsak;
1 2 3 4 5 6 7 |
bootJar { launchScript() } |
uygulamayı executable olduğunu belirtmemiz gerek.
2. Build
1 2 3 4 5 |
$ mvn clean package |
Komutu ile .jar’ı dosyasını oluşturuyoruz.
3. Permission
Oluşan jar dosyasına çalıştırma izni vermemiz gerekiyor. Aşağıdaki komut ile sadece çalıştırma izni verebilirsiniz.
1 2 3 4 5 |
$chmod +x myapp.jar |
4. Symbolic-Link
Aşağıdaki komut ile bir sembolik-link oluşturuyoruz. Sembolik-link kısayol olarak düşünebiliriz. Bu kısayol tanımını /etc/init.d dosyasına yapıyoruz. Dosyanın asıl olarak bulunduğu konum ve init.d dosyasında gözükeceği çalıştırmak istediğinizde kullanacağınız isimi belirtiyorsunuz.
1 2 3 4 5 |
$ sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp |
Şimdi servisi çalıştırabiliriz.
1 2 3 4 5 |
$ sudo service myapp start |
İstediğiniz zaman durdurabilirsiniz.
1 2 3 4 5 |
$ sudo service myapp stop |
Servisin durumuna bakabilirsiniz.
1 2 3 4 5 |
$ sudo service myapp status |
Kaynak
Faydalı olması dileğiyle.