리눅스 시스템을 사용하다 보면 systemd
라는 프로세스를 발견하신 적이 있을 겁니다. 이 작은 프로세스는 리눅스 운영체제의 핵심적인 역할을 담당합니다. 바로 시스템 및 서비스를 관리하는 것이죠!
Systemd는 PID 1로 실행됩니다. 이는 부모 프로세스가 없다는 의미이며, 리눅스 부팅 시 가장 먼저 실행되는 프로세스라는 것을 뜻합니다. 마치 오케스트라의 지휘자처럼, 사용자가 시스템을 사용할 수 있도록 초기 서비스들을 병렬적으로 실행하여 부팅 과정을 빠르게 만들어줍니다. 그리고 마지막으로 종료되어 시스템 전체를 마무리하는 역할도 수행하죠.
2015년부터 리눅스는 Systemd를 공식적으로 채택했습니다. 이전에는 Unix System V init system(SysV)과 같은 초기화 시스템을 사용했지만, Systemd는 훨씬 빠른 병렬 처리와 서비스 간의 의존성을 효율적으로 관리하는 능력 덕분에 많은 발전을 이루었습니다.
#!/bin/bash
while :
do
echo -e "Hi! this service is run by systemd"
sleep 1
done
먼저 간단한 테스트 스크립트를 만들어 보겠습니다. 이 스크립트는 1초마다 "Hi! this service is run by systemd"라는 메시지를 출력합니다.
[Unit]
Description=My Systemd Daemon
[Service]
Type=simple
ExecStart=/root/my-test-script.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
이제 이 스크립트를 실행하는 Systemd 서비스 파일을 만들어야 합니다.
sudo ln -s /root/my-systemd-daemon.service /etc/systemd/system/my-systemd-daemon.service
생성한 서비스 파일을 Systemd에 등록합니다. 심볼릭 링크를 사용하여 /etc/systemd/system/
디렉토리에 연결합니다.
systemctl start my-systemd-daemon
: 서비스 시작systemctl status my-systemd-daemon
: 서비스 상태 확인 (로그도 함께 출력)systemctl stop my-systemd-daemon
: 서비스 중지systemctl restart my-systemd-daemon
: 서비스 재시작 (중지 후 시작)systemctl enable my-systemd-daemon
: 부팅 시 자동 실행 설정systemctl disable my-systemd-daemon
: 부팅 시 자동 실행 해제systemctl reload my-systemd-daemon
: 서비스 설정 파일 변경 시 리로드 (서비스 중단 없이)systemctl daemon-reload
: 전체 Systemd 데몬 설정 리로드/etc/systemd/system/
디렉토리에 서비스 파일을 심볼릭 링크로 연결하여 관리하면 편리합니다.WantedBy=multi-user.target
은 일반적인 서버 환경에서 서비스를 실행하기 위해 필요한 설정입니다.Restart=on-failure
옵션을 사용하면 서비스가 예기치 않게 종료될 경우 자동으로 재시작됩니다.이제 Systemd에 대한 이해를 바탕으로 리눅스 시스템을 더욱 효율적으로 관리하고, 자신만의 서비스를 만들 수 있을 것입니다!
댓글목록
등록된 댓글이 없습니다.