아무거나

[centos] 프로세스 systemd에 등록 및 서버 재부팅시에 자동 실행하게 등록 본문

Infra/Linux & Unix

[centos] 프로세스 systemd에 등록 및 서버 재부팅시에 자동 실행하게 등록

전봉근 2020. 12. 7. 09:28
반응형

프로세스 systemd에 등록 및 서버 재부팅시에 자동 실행하게 등록

 

1. systemd에 service 파일 생성 [test.service]

  $ sudo vi /usr/lib/systemd/system/test.service

  // 내용
  [Unit]
  // systemctl status 명령어에 표시되는 상세 설명
  Description=test
  // 유닛이 시작되는 순서를 조정하여 After에 지정된 유닛이 실행된 이후 시작된다.
  After=network.target

  [Service]
  // ExecStart에 영향을 주는 유닛 프로세스가 시작되며, simple, forking, oeshot, idle 등이 있다.
  Type=forking
  User=bkjeon
  Group=bkjeon
  // syslog에서 구분하기 위한 이름
  SyslogIdentifier=test
  // 실행된 프로세스의 작업 디렉토리를 설정
  WorkingDirectory=/home/bkjeon/app
  // systemctl 명령어로 인한 중지를 제외하고 프로세스가 종료된 후 재시작한다.
  Restart=always
  // Restart 옵션과 연결되어 몇 초에 실행할지 결정
  RestartSec=0s
  // 서비스가 시작될 때 실행할 명령어 또는 스크립트 작성
  ExecStart=/home/bkjeon/app/test.sh start
  // 서비스가 정지될 때 실행할 명령어 또는 스크립트 작성
  ExecStop=/home/bkjeon/app/test.sh stop

  [Install]
  // 서비스가 실행될 타겟 설정
  WantedBy=multi-user.target

 

2. systemd 적용을 위해 재시작

$ sudo systemctl daemon-reload

 

3. 사용방법

    $ sudo systemctl start test.service // 시작
    $ sudo systemctl stop test.service // 중지
    $ sudo systemctl restart test.service // 재시작
    $ sudo systemctl status test.service // 상세정보 확인

 

4. 만약 selinux is preventing /usr/lib/systemd/systemd from read access 오류를 표시할 때

  • SELinux 해제 (SELinux 는 Linux의 보안을 강화해 주는 보안 강화 커널이고 zero-day 공격 및 buffer overflow 등 어플리케이션 취약점으로 인한 해킹을 방지해 주는 핵심 구성요소이다. -> 인터넷에 연결된 리눅스 서버일 경우 SELinux 해제는 추천하지 않는다)

  • sudo vi /etc/sysconfig/selinux

SELINUX=enforcing ->  SELINUX=disabled 로 변경 후 재부팅

 

5. 서버가 부팅할 때 자동으로 주키퍼 서비스를 실행하게 설정

  // enable 적용되면 "Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /etc/systemd/system/nginx.service" 을 출력 -> /etc/systemd/system/multi-user.target.wants 경로에 심볼릭 링크로 생성되어있다.
  $ sudo systemctl enable nginx.service
반응형

'Infra > Linux & Unix' 카테고리의 다른 글

tcp_max_tw_buckets 값 설정  (0) 2021.02.11
커널 파라미터 튜닝  (0) 2021.02.11
[ubuntu] Could not get lock /var/lib/dpkg/lock ... 오류  (0) 2020.05.20
프로세스 백그라운드 실행 및 nohup  (0) 2020.04.16
Kill 옵션 관련  (0) 2020.04.16
Comments