본문 바로가기

systemd

(14)
리눅스 시스템 시간 동기화하기 ㅋ리눅스 시스템의 시간 동기화에 대해 사용되는 프로그램을 찾아보면 주로 ntpd, rdate를 소개하고 있습니다. 다만 둘 다 새로운 패키지를 설치해야 한다는 귀찮음과 rdate를 사용하여 정기적으로 동기화하려면 cron이나 systemd timer 등의 다른 프로그램의 도움이 필요합니다. 그래서 저는 요즘 대부분의 배포판에 도입된 systemd의 timesyncd 를 사용하여 시간 동기화를 하는 것을 추천합니다. systemd가 적용되어 있다면 systemd-timesyncd도 자동적으로 설치되기 때문에 따로 설치할 필요도 없고, systemd의 특유의 간단한 설정으로 어렵지 않게 적용할 수 있습니다. 먼저 timesyncd의 설정 파일은 /etc/systemd/timesyncd.conf 에 존재합니다..
hostnamectl로 리눅스 호스트명 변경하기 옛날 init 시절에 호스트명을 변경하려면 상당히 귀찮았습니다. 거기다 파일 하나만 바꿨다간 갑자기 에러가 뜨거나 하는 경우도 빈번했습니다. 하지만 systemd가 도입되면서 hostnamectl 이란 명령이 새로 생겼고, 이 명령을 사용하면 간단하며 안전하게 호스트명을 변경할 수 있습니다. hostnamectl를 아무 인자없이 실행하면 시스템의 호스트명, 샤시, Machine ID, Boot ID, 가상화, 커널 버전 등의 정보를 출력합니다.이것은 제 컴퓨터에 구축해둔 컨테이너에 접속하여 hostnamectl을 실행한 모습입니다. 현재 호스트명은 test로 설정된 것을 볼 수 있습니다. 이 호스트명을 변경하려면 set-hostname 과 변경할 호스트명을 인자로 입력하면 됩니다. # hostnamect..
systemd timer로 cron 대체하기 리눅스 init으로 많이 사용되는 systemd의 기능 중에 timer가 있습니다. 이 timer는 이름 그대로 일정 시간이 지난 이후에 작업을 수행하도록 하는 기능입니다. 예전의 리눅스에서는 cron이란 프로그램으로 crontab 설정파일을 통하여 일정 시간마다 프로그램을 실행시켰습니다만 가독성이 그리 좋지 못합니다.systemd에서는 가독성이 좋으면서 부가적인 옵션이 많으며 간단하게 설정이 가능하고, 리눅스가 실행되는 도중에는 절대 죽지 않기 때문에 사용자도 모르게 cron 서비스가 죽어버리는 사태도 막을 수 있습니다. 그러므로 만약 지금까지 cron을 사용하셨다면 systemd로 넘어오는게 시스템 자동화와 일률적인 관리 편의성을 위해서라도 바람직할거라 생각합니다. systemd는 모든 설정을 Uni..
systemd로 서비스 관리하기 systemd로 서비스를 관리하기 위해서는 먼저 systemctl이란 명령을 알아야합니다.systemctl은 systemd의 전반적인 설정에 필수적인 명령으로, 앞으로 systemd를 사용하기 위해서 가장 많이 사용할 명령입니다. 먼저 시스템 내부의 유닛들을 보기 위해서 list-units 라는 내부 명령이 있습니다. $ systemctl list-units 이렇게 정말 다양한 unit들이 존재합니다. list-units는 기본적으로 실행중인 유닛들을 표시합니다. 만약 모든 유닛들을 보고싶다면 --all 옵션을 사용하면 됩니다. $ systemctl --all list-units 여기서는 service 유닛들을 다룰 예정이라 이 유닛들만 보기 위해서는 -t 옵션을 사용하면 됩니다. $ systemctl ..
systemd란 무엇인가 근 몇 년 안에 리눅스를 조금이라도 깊게 사용해봤다면 systemd라는 미지의 프로세스가 있다는 것을 눈치채셨을 겁니다. 오래전에 사용하셨던 분이라면 init이 사라져버리고 systemd가 떡하니 PID 1를 차지하고 있는 것을 보고 의아해 하였을 분도 계실겁니다.systemd가 PID 1을 차지하는 것을 보면 init이 퇴출당하고 init이 하던 작업을 물려받은 더 대단한 systemd가 나타났다는 것을 쉽게 유추할 수 있습니다. 도대체 뭐가 그리 좋길래 상당수의 배포판들이 오래전부터 사용해오던 init을 버리고 systemd로 갈아탔는지 알아봅시다. 예전의 PID 1이었던 init은 현재로부터 수 십 년 전에 처음 소개된 프로그램인데 그 때의 구조를 거의 바꾸지 않고 계속 기능이 추가되며 날이 갈수록..
systemd-resolved 사용하기 전통적으로 리눅스에서 도메인을 IP 주소로 변환 할 때는 먼저 /etc/hosts에 등록되어 있는지 확인하고 만약 없다면 /etc/resolv.conf 에 등록되어 있는 네임서버에 DNS Query를 합니다. 하지만 세월이 지나면서 중간에 다른 방법으로도 변환하는 것이 필요해지면서 NSS(Name Service Switch)가 도입되었습니다. 이것을 사용하면 도메인 뿐만 아니라 사용자 계정, 그룹 등 다양한 정보에 대해 가져오는 위치와 순서를 제어할 수 있습니다. 다만 이것까지 설명하기에는 너무 난잡해질 것 같아서 여기서는 무시하도록 하겠습니다. (nss가 도입되어도 hosts 파일 검사 -> resolv.conf로 DNS에 쿼리한다는 순서는 바뀌지 않았기 때문입니다.) 우선 systemd-resolve..