(zookeeper) systemd 등록 및 설명
리눅스 서버를 운영하거나 애플리케이션 서비스를 운영하는 경우에는 여러 종류의 프로세스들을 잘 관리하는 것도 매우 중요하다.
예를들어, 예기치 않게 서버의 오작동으로 인해 리부팅된 경우 어떤 프로세스는 반드시 자동으로 시작돼야 하는 경우도 있고, 반대로 어떤 프로세스는 반드시 관리자가 수동으로 시작해줘야 하는 경우가 있습니다.
이렇게 다양한 상황에 따라 효율적으로 프로세스들을 관리하기 위한 방법으로 여러 프로세스들을 systemd에 등록해 운영할 수 있다.
==========================================================
주키퍼에서는 zookeeper-server.service라는 파일명으로 만든다.
<zookeeper-server.service>
[Unit]
Description=zookeeper-server
After=network.target
[Service]
Type=forking
User=root
Group=root
SyslogIdentifier=zookeeper-server
WorkingDirectory=/usr/local/zookeeper
Restart=always
RestartSec=0s
ExecStart=/usr/local/zookeeper/bin/zkServer.sh start
ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop
==========================================================
1. [Unit] 일반적인 옵션을 나타낸다. 가장 많이 사용하는 옵션은 실행 순서를조정하는 After, Before이다.
- Description : 해당 유닛에 대한 상세한 설명을 나타내며 이 내용은 systemctl status 명령어에 표시된다.
- After : 유닛이 시작되는 순서를 조정하며 After에 저장된 유닛이 실행된 이후 시작된다.
- Before : 유닛이 시작되는 순서를 조정하며 Befor에 지정된 유닛 이전에 실행된다.
2. [Service] 서비스 실행과 관련된 옵션
- Type : ExecStart에 영향을 주는 유닛 프로세스가 시작되며, simple, forking, oneshot, idle등이 있다.
- SyslogIdentifier: syslog에서 구분하기 위한 이름
- WorkingDirectory : 실행된 프로세스의 작업 디렉토리를 설정한다. 만약 설정하지 않으면 root의 디렉토리이거나 user로 실행되면 user의 홈 디렉토리가 설정된다.
- Restart: 이 옵션을 always로 설정한 경우 systemctl 명령어로 인한 중지를 제외하고, 프로스세그 종료된 후 재시작한다.
- RestartSec : 이 옵션은 Restart 옵션과 연결되어 몇 초에 실행할지를 정한다.
- ExecStart : 서비스가 시작될 때 실행할 명령어 또는 스크립트를 설정한다. 주키퍼 실행 명령어를 입력한다.
=========================================================
systemd의 파일을 새로 만들거나 기존 파일을 수정한 이후에는 반드시 systemd 재시작을 위해 다음과 같이 systemctl daemon-reload 명령어를 입력해야 한다.
$systemctl daemon-reload
=========================================================
주키퍼를 시작하는 명령어는
$systemctl start zookeeper-server.service
중지하는 명령어는
$systemctl stop zookeeper-server.service
재시작하는 명령어는
$systemctl restart zookeeper-server.service
만약 주키퍼 서비스를 서버가 부팅할 때 자동으로 실행될 수 있도록 하는 방법은
명령어 중간에 enable이라고 옵션을 준다.
$systemctl enable zookeeper-server.service
예를들어, 예기치 않게 서버의 오작동으로 인해 리부팅된 경우 어떤 프로세스는 반드시 자동으로 시작돼야 하는 경우도 있고, 반대로 어떤 프로세스는 반드시 관리자가 수동으로 시작해줘야 하는 경우가 있습니다.
이렇게 다양한 상황에 따라 효율적으로 프로세스들을 관리하기 위한 방법으로 여러 프로세스들을 systemd에 등록해 운영할 수 있다.
==========================================================
주키퍼에서는 zookeeper-server.service라는 파일명으로 만든다.
<zookeeper-server.service>
[Unit]
Description=zookeeper-server
After=network.target
[Service]
Type=forking
User=root
Group=root
SyslogIdentifier=zookeeper-server
WorkingDirectory=/usr/local/zookeeper
Restart=always
RestartSec=0s
ExecStart=/usr/local/zookeeper/bin/zkServer.sh start
ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop
==========================================================
1. [Unit] 일반적인 옵션을 나타낸다. 가장 많이 사용하는 옵션은 실행 순서를조정하는 After, Before이다.
- Description : 해당 유닛에 대한 상세한 설명을 나타내며 이 내용은 systemctl status 명령어에 표시된다.
- After : 유닛이 시작되는 순서를 조정하며 After에 저장된 유닛이 실행된 이후 시작된다.
- Before : 유닛이 시작되는 순서를 조정하며 Befor에 지정된 유닛 이전에 실행된다.
2. [Service] 서비스 실행과 관련된 옵션
- Type : ExecStart에 영향을 주는 유닛 프로세스가 시작되며, simple, forking, oneshot, idle등이 있다.
- SyslogIdentifier: syslog에서 구분하기 위한 이름
- WorkingDirectory : 실행된 프로세스의 작업 디렉토리를 설정한다. 만약 설정하지 않으면 root의 디렉토리이거나 user로 실행되면 user의 홈 디렉토리가 설정된다.
- Restart: 이 옵션을 always로 설정한 경우 systemctl 명령어로 인한 중지를 제외하고, 프로스세그 종료된 후 재시작한다.
- RestartSec : 이 옵션은 Restart 옵션과 연결되어 몇 초에 실행할지를 정한다.
- ExecStart : 서비스가 시작될 때 실행할 명령어 또는 스크립트를 설정한다. 주키퍼 실행 명령어를 입력한다.
=========================================================
systemd의 파일을 새로 만들거나 기존 파일을 수정한 이후에는 반드시 systemd 재시작을 위해 다음과 같이 systemctl daemon-reload 명령어를 입력해야 한다.
$systemctl daemon-reload
=========================================================
주키퍼를 시작하는 명령어는
$systemctl start zookeeper-server.service
중지하는 명령어는
$systemctl stop zookeeper-server.service
재시작하는 명령어는
$systemctl restart zookeeper-server.service
만약 주키퍼 서비스를 서버가 부팅할 때 자동으로 실행될 수 있도록 하는 방법은
명령어 중간에 enable이라고 옵션을 준다.
$systemctl enable zookeeper-server.service
댓글
댓글 쓰기