0Pricing
Linux Server Deployment & SSH Mastery · 강의

systemd로 시스템 서비스 관리하기

systemd를 사용해 Linux 서버를 구동하는 장시간 실행 프로그램을 제어합니다. 서비스를 시작, 중지, 활성화하고 검사하며, journalctl로 로그를 읽고, 단위가 프로세스 관리에 어떻게 맞물리는지 이해합니다.

systemd로 시스템 서비스 관리하기은(는) CoddyKit의 무료 Linux Server Deployment & SSH Mastery 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Linux Server Deployment & SSH Mastery 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Linux Server Deployment & SSH Mastery 강의에는 총 4개의 강의가 포함되어 있습니다.

서비스와 일반 프로세스 비교

개별 프로세스와 예약된 작업을 관리해 보았습니다. 하지만 서버를 구성하는 프로그램인 웹 서버, 데이터베이스, SSH는 서비스로 실행됩니다. 서비스는 부팅할 때 시작되고 오류가 발생하면 다시 시작되어야 하는 백그라운드 데몬입니다.

최신 Linux에서는 서비스가 시스템 및 서비스 관리자인 systemd로 관리됩니다.

systemd가 관리하는 대상

systemd는 모든 것을 단위로 구성합니다. 가장 일반적인 유형은 데몬을 실행하는 방법을 설명하는 .service 단위입니다.

systemctl 명령은 이러한 단위를 확인하고 제어하는 기본 인터페이스입니다.

systemctl --version

서비스 상태 확인하기

systemctl status는 서비스가 실행 중인지, 주 프로세스 ID, 최근 기록 행, 부팅 시 활성화되어 있는지를 보여 줍니다.

서비스 문제를 해결할 때 보통 가장 먼저 실행하는 명령입니다.

systemctl status nginx

서비스 시작 및 중지하기

start, stop, restart로 서비스의 실행 상태를 제어합니다. 이러한 명령은 즉시 적용되지만 부팅 동작은 변경하지 않습니다.

연결을 끊지 않고 서비스가 설정을 다시 읽을 수 있도록 지원하는 경우 reload를 사용하십시오.

sudo systemctl start nginx
sudo systemctl restart nginx
sudo systemctl reload nginx
sudo systemctl stop nginx

부팅 시 서비스 활성화하기

enable은 서버가 부팅될 때 서비스가 자동으로 시작되도록 합니다. disable은 서비스를 부팅 대상에서 제거합니다. 이는 현재 서비스가 실행 중인지와는 별개입니다.

편리한 --now 플래그를 사용하면 한 단계에서 활성화와 시작을 모두 수행할 수 있습니다.

sudo systemctl enable nginx
sudo systemctl enable --now nginx
sudo systemctl disable nginx

서비스 목록 보기

설치되어 실행 중인 항목을 확인하려면 단위 파일 또는 활성 단위를 나열하십시오.

  • list-units --type=service — 현재 로드된 서비스
  • list-unit-files --type=service — 설치된 모든 서비스와 활성화 상태
systemctl list-units --type=service --state=running
systemctl list-unit-files --type=service

journalctl로 기록 읽기

systemd는 서비스 출력을 저널에 기록합니다. journalctl로 조회하십시오.

  • -u nginx — 이 서비스만 표시
  • -f — 실시간으로 따라가기
  • -e — 끝으로 이동
sudo journalctl -u nginx -f
sudo journalctl -u ssh --since '1 hour ago'

단위 파일의 구조

서비스는 보통 /etc/systemd/system/ 또는 /lib/systemd/system/에 있는 단위 파일로 정의됩니다. 단위 파일에는 [Unit], [Service], [Install]이라는 세 가지 주요 섹션이 있습니다.

ExecStart 행은 systemd가 실행할 명령을 지정합니다.

[Unit]
Description=My App
After=network.target

[Service]
ExecStart=/usr/bin/myapp --port 8080
Restart=on-failure

[Install]
WantedBy=multi-user.target

직접 서비스 만들기

직접 만든 프로그램을 서비스로 실행하려면 /etc/systemd/system/에 단위 파일을 배치하고, 새 파일을 인식하도록 systemd를 다시 로드한 다음 서비스를 활성화하고 시작하십시오.

단위 파일을 변경한 후에는 daemon-reload가 필요합니다.

sudo nano /etc/systemd/system/myapp.service
sudo systemctl daemon-reload
sudo systemctl enable --now myapp

오류 발생 시 자동 재시작

systemd의 가장 뛰어난 기능 중 하나는 자동 복구입니다. Restart= 지시어는 충돌한 서비스를 다시 실행하도록 지정합니다.

  • Restart=on-failure — 0이 아닌 종료 상태일 때만
  • Restart=always — 서비스가 중지될 때마다
  • RestartSec=5 — 재시도 전에 5초 대기
[Service]
ExecStart=/usr/bin/myapp
Restart=always
RestartSec=5

권장 사항

서비스를 자신 있게 관리하십시오:

  • 실행 시점(start)과 부팅 시점(enable)을 구분하십시오
  • 단위 파일을 편집한 후 daemon-reload를 실행하십시오
  • 흩어진 기록 파일 대신 journalctl -u를 사용해 문제를 해결하십시오
  • 복원력이 필요한 사용자 지정 앱에는 Restart=on-failure을 추가하십시오

빠른 확인

systemd에 관한 지식을 테스트해 보십시오.

복습

이제 systemd로 서버 서비스를 관리할 수 있습니다:

  • status, start, stop, restart, reload
  • 부팅 동작을 위한 enable/disable
  • 서비스 기록을 위한 journalctl -u
  • 복원력을 위한 Restart=가 포함된 사용자 지정 .service 단위 파일

이제 장시간 실행되는 데몬까지 프로세스 및 작업 관리 기술을 확장할 수 있습니다.

자주 묻는 질문

“systemd로 시스템 서비스 관리하기” 강의는 무료인가요?

네 — “systemd로 시스템 서비스 관리하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Linux Server Deployment & SSH Mastery 강의 전체를 잠금 해제할 수 있습니다. Linux Server Deployment & SSH Mastery 강의에는 총 4개의 강의가 포함되어 있습니다.

“systemd로 시스템 서비스 관리하기”에서 뭘 배우나요?

systemd를 사용해 Linux 서버를 구동하는 장시간 실행 프로그램을 제어합니다. 서비스를 시작, 중지, 활성화하고 검사하며, journalctl로 로그를 읽고, 단위가 프로세스 관리에 어떻게 맞물리는지 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 Linux Server Deployment & SSH Mastery을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Linux Server Deployment & SSH Mastery을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Linux Server Deployment & SSH Mastery은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“systemd로 시스템 서비스 관리하기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Linux Server Deployment & SSH Mastery 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Linux Server Deployment & SSH Mastery 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 사용자 및 그룹 관리
  2. 시스템 프로세스 모니터링
  3. Cron으로 예약 작업 수행
  4. systemd로 시스템 서비스 관리하기
← Linux Server Deployment & SSH Mastery(으)로 돌아가기