JAVA

SPRING BOOT 서비스 등록

ducks228 2020. 9. 16. 13:54

스프링 부트를 빌드해서 서버에서 서비스로 등록해서 데몬으로 서비스하기

gradle일때 추가

apply plugin: 'spring-boot'

springBoot { executable = true }​

maven일때

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

빌드파일을 서버에서

javar -jar "파일명"

실행을 하게되면 putty등 ssh프로그램을 끄게 되면 프로세스도 종료된다.

 

파일 권한은 755이상이어야 된다.

 

서비스를 등록해서

sudo ln -s /dev/workspace/projectName-1.0.jar /etc/init.d/projectName

sudo service projectName start

실행하면 작동이 된다.

ps -ef | grep projectName

으로 확인이 가능하다.

하지만 라즈베리파이 에서는 저렇게 하면 실행이 안되고 .service 가 없다는 에러가 뜬다.

/etc/systemd/system

폴더에 projectName.service라는 파일을 만들어 줘야 한다.

권한은 root로

[Unit]
Description=myapp
After=syslog.target

[Service]
User=root
ExecStart=/srv/projecName-1.0.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

파일을 만들어 주면된다.

 

sudo service projectName start

해주면 실행이 된다.

 

실행시 permission denied가 난다면 파일의 권한을 다시 한번 확인해야한다.

 

서버마다 조금씩 다르므로 확인해서 작업해야 한다.

 

참고사이트 : docs.spring.io/spring-boot/docs/1.3.8.RELEASE/reference/html/deployment-install.html

 

55. Installing Spring Boot applications

The default executable script that can be embedded into Spring Boot jars will act as an init.d script when it is symlinked to /etc/init.d. The standard start, stop, restart and status commands can be used. The script supports the following features: Assumi

docs.spring.io