SPRING BOOT 서비스 등록
스프링 부트를 빌드해서 서버에서 서비스로 등록해서 데몬으로 서비스하기
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