====== systemd: Linux 시스템 관리자 ======
**systemd**는 [[wiki:glossary:server_operations:linux|Linux]] 시스템의 초기화 시스템이자 서비스 관리자입니다.
시스템 부팅부터 서비스 관리까지 Linux 시스템의 핵심 기능을 담당하며, Dream of E&C 프로젝트의 서비스 자동화에 활용됩니다.
==== 주요 특징 ====
**서비스 관리**:
* **자동 시작**: 시스템 부팅 시 서비스 자동 실행
* **의존성 관리**: 서비스 간 실행 순서 및 의존성 처리
* **상태 모니터링**: 서비스 실행 상태 및 로그 관리
* **재시작 정책**: 서비스 실패 시 자동 재시작
**시스템 초기화**:
* **부팅 프로세스**: 시스템 시작 과정 관리
* **마운트 관리**: 파일 시스템 마운트 처리
* **네트워크 설정**: 네트워크 인터페이스 초기화
* **사용자 세션**: 로그인 세션 관리
==== Dream of E&C 프로젝트에서의 활용 ====
**주요 역할**:
* **Flask 서비스**: [[wiki:glossary:server_operations:waitress|Waitress]] 서버를 systemd 서비스로 등록
* **Nginx 관리**: [[wiki:glossary:web_technologies:nginx|Nginx]] 웹 서버 자동 시작 및 관리
* **자동화 스크립트**: 크론탭 대신 systemd 타이머 사용
* **로그 관리**: journald를 통한 통합 로그 관리
==== 서비스 파일 예시 ====
# /etc/systemd/system/hr-portal.service
[Unit]
Description=HR Portal Backend Service
After=network.target
[Service]
Type=simple
User=www-data
WorkingDirectory=/var/www/hr-portal
ExecStart=/usr/bin/python3 -m waitress --host=0.0.0.0 --port=5000 app:app
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
==== 기본 명령어 ====
# 서비스 관리
systemctl start hr-portal # 서비스 시작
systemctl stop hr-portal # 서비스 중지
systemctl restart hr-portal # 서비스 재시작
systemctl status hr-portal # 서비스 상태 확인
# 자동 시작 설정
systemctl enable hr-portal # 부팅 시 자동 시작 활성화
systemctl disable hr-portal # 부팅 시 자동 시작 비활성화
# 로그 확인
journalctl -u hr-portal # 서비스 로그 확인
journalctl -u hr-portal -f # 실시간 로그 확인
==== 관련 기술 ====
* **[[wiki:glossary:server_operations:linux|Linux]]**: systemd가 작동하는 운영체제
* **[[wiki:glossary:web_technologies:nginx|Nginx]]**: systemd로 관리되는 웹 서버
* **[[wiki:glossary:server_operations:waitress|Waitress]]**: systemd 서비스로 등록하여 관리
* **journald**: systemd의 로깅 시스템
==== 추가 정보 ====
**공식 자료**:
* [[https://systemd.io/|systemd 공식 사이트]]
* [[https://www.freedesktop.org/software/systemd/man/|systemd 매뉴얼]]
**운영 팁**:
* **서비스 파일 위치**: ''/etc/systemd/system/''
* **설정 변경 후**: ''systemctl daemon-reload'' 실행 필요
* **로그 크기 제한**: ''journalctl --vacuum-size=100M''
* **서비스 목록**: ''systemctl list-units --type=service''
----
> **systemd는 Dream of E&C 프로젝트의 모든 서비스를 안정적으로 관리하는 핵심 도구입니다.**