DevOps 5일차 - 데몬

문한성·2023년 3월 13일
0

부트캠프

목록 보기
6/123
post-thumbnail

데몬

리눅스 데몬은 백그라운드에서 실행되는 프로그램으로, 시스템 시작시 자동으로 실행되며 특정한 서비스를 제공합니다. 다음은 몇 가지 리눅스 데몬의 예시입니다.

  • Apache HTTP Server(httpd) - 웹 서버를 제공하는 데몬으로, HTTP 요청을 처리하여 웹 페이지를 제공합니다.
  • SSHD - SSH 접속을 제공하는 데몬으로, 원격으로 서버에 접속할 때 사용됩니다.
  • Cron - 예약된 작업을 실행하는 데몬으로, 주기적으로 실행되는 작업을 스케줄링합니다.
  • MySQL - 데이터베이스 서버를 제공하는 데몬으로, 데이터베이스 관리를 위해 사용됩니다.
  • Docker - 컨테이너 가상화를 제공하는 데몬으로, 애플리케이션을 격리된 환경에서 실행할 수 있습니다.

이외에도 다양한 리눅스 데몬들이 존재하며, 대부분은 시스템 관리자나 개발자 등이 필요에 따라 직접 구현할 수도 있습니다.

다음은 cron의 예시입니다.

  1. 매일 1시에 /home/user/scripts/run_backup.sh 스크립트를 실행하기 위해 cron을 설정하는 방법입니다.
0 1 * * * /home/user/scripts/run_backup.sh
  1. 매주 월요일 2시에 /home/user/scripts/run_cleanup.sh 스크립트를 실행하기 위해 cron을 설정하는 방법입니다.
0 2 * * 1 /home/user/scripts/run_cleanup.sh
  1. 매달 1일 3시에 /home/user/scripts/run_report.sh 스크립트를 실행하기 위해 cron을 설정하는 방법입니다.
0 3 1 * * /home/user/scripts/run_report.sh

위 예시에서 각 필드의 의미는 다음과 같습니다.

  • 첫 번째 필드: 분 (0-59)
  • 두 번째 필드: 시간 (0-23)
  • 세 번째 필드: 일 (1-31)
  • 네 번째 필드: 월 (1-12)
  • 다섯 번째 필드: 요일 (0-7, 0과 7은 일요일)

만약 스크립트나 명령어를 실행하는데 필요한 환경 변수나 PATH가 다를 경우, cron 설정 파일의 맨 위에 적어놓는 환경 변수 설정 부분에 추가해주어야 합니다.

systemctl

systemctl은 시스템 관리를 위한 유틸리티로, 리눅스 시스템에서 서비스, 소켓, 디바이스, 마운트 포인트 등의 유닛을 관리할 수 있습니다. 이는 systemd라는 시스템 및 서비스 관리 프레임워크의 일부입니다.

systemctl 명령어는 다양한 옵션을 가지고 있으며, 주요 옵션은 다음과 같습니다.

  • start: 유닛을 시작합니다.
  • stop: 유닛을 중지합니다.
  • restart: 유닛을 재시작합니다.
  • enable: 유닛을 부팅 시 자동 시작하도록 설정합니다.
  • disable: 유닛을 부팅 시 자동 시작하지 않도록 설정합니다.
  • status: 유닛의 현재 상태를 확인합니다.

예를 들어, httpd 서비스를 시작하려면 다음과 같이 입력합니다.

$ systemctl start httpd

서비스 목록보기

$ systemctl --type=service
profile
기록하고 공유하려고 노력하는 DevOps 엔지니어

0개의 댓글