Skip to end of metadata
Go to start of metadata


OS CentOS 7 이하는 Atlassian 제품을 설치시 자동으로 서비스 등록을 시켜 주지만 CentOS 7 부터는 수동으로 Service 등록해 줘야 한다.


서비스 등록 하는 절차

vi /etc/systemd/system/jira.service



[Unit]
Description=Atlassian JIRA Server Service
After=network.target mysqld.service

[Service]
Type=forking
User=jira
Environment=JAVA_HOME=/data/java/jdk
ExecStart=/opt/atlassian/jira/bin/start-jira.sh
ExecStop=/opt/atlassian/jira/bin/stop-jira.sh

[Install]
WantedBy=multi-user.target

Bin 이나 exe 로 설치하면 jdk를 따로 설치할 필요가 없고, 또한 대부분 database를 다른 서버에 설치해주므로 아래와 같이 설정할 수 있다. 

vi /etc/systemd/system/jira.service

[Unit]
Description=JIRA Service
After=network.target firewalld.service httpd.service

[Service]
Type=forking
User=jira
ExecStart=/opt/atlassian/jira/bin/start-jira.sh
ExecStop=/opt/atlassian/jira/bin/stop-jira.sh
ExecReload=/opt/atlassian/jira/bin/stop-jira.sh | sleep 60 | /opt/atlassian/jira/bin/start-jira.sh

[Install]

WantedBy=multi-user.target


 [Unit]섹션

Description

해당 유닛에 대한 상세한 설명을 포함한다.


After=network.target mysqld.service

해당 유닛이 시작된 이후 나열된 유닛이 실행 한다.(network와 mysqld 서비스가 실행후 작동하게 된다.)

 [Service]섹션

Type=forking

"simple" (기본값) 유닛이 시작된 경우 즉시 systemd 는 유닛의 시작이 완료되었다고 판단한다. 다른 유닛과 통신하기 위해 소켓을 사용하는 경우 이러한 설정을 사용하면 안된다.

"forking" 자식 프로세스를 생성이 완료되는 단계까지를 systemd 가 시작이 완료되었다고 판단하게 된다. 부모 프로세스를 추적할 수 있도록 PIDFile= 필드에 PID 파일을 선언해 주어야 한다.
"oneshot" 은 "simple" 과 다소 유사하지만 단일 작업을 수행하는데 적합한 타입니다. 또한 실행 이후 해당 실행이 종료되더라도 RemainAfterExit=yes 옵션을 통해 유닛이 활성화 상태로 간주할 수 있다.
"notify" 은 "simple" 과 동일하다. 다만 유닛이 구동되면 systemd 에 시그널을 보낸다. 이때 시그널에 대한 내용은  libsystemd-daemon.so 에 선언 되어 있다.
"dbus" DBUS 에 지정된 BusName 이 준비될때까지 대기한다. 즉 DBUS 준비가 완료된 이후 유닛이 시작되었다고 간주한다.


User=JIRA

유닛의 프로세스를 수행할 사용자명, 그룹명 등을 지정한다.


Environment=

해당 유닛 에서 사용할 환경 변수를 선언한다. 또한 반드시 “Exec*=” 옵션보다 상단에 위치해야 한다. 예제는 아래와 같다.
Environment="ONE=one" 'TWO=two two'


EnvironmentFile=
해당 유닛에서 사용할 환경 변수 파일을 선언한다. 환경 변수 파일에서 "#' 와 ";" 로 시작되는 라인은 주석으로 처리된다. "Environment=" 와 같이 사용하는 경우 "Environment=" 옵션값이 먹게 된다. 또한 반드시 “Exec*=” 옵션보다 상단에 위치해야 한다.


ExecStart=
구동 명령어(스크립트)을 선언한다. 실행 명령어는 반드시 절대 경로 또는 변수(${STRINGS} 따위) 로 시작해야 한다. 다중 명령어를 지원한다. 예제는 아래와 같다.
ExecStart="commnad 1; command 2; command 3” 또는
ExecStart="commnad 1”
ExecStart="command 2”  


ExecStop=
중지 명령어(스크립트)를 선언한다. "ExecStart=" 동일하게 사용하면 된다. 중지 방식은 "KillMode=" 로 지정된다.
 [Install]섹션

WantedBy=, RequiredBy=

"systemctl enable" 명령어로 유닛을 등록할때 등록에 필요한 유닛을 지정한다. 해당 유닛을 등록하기위한 종속성 검사 단계로 보면 된다.


생성된 서비스를 아래 명령어로 등록 및 시작

systemctl enable jira.service
systemctl daemon-reload
systemctl start jira.service
systemctl status jira.service





  • No labels