리눅스에서 데몬 서비스를 관리할 때 systemctl을 사용하는데 mariadb, mysql, postgresql 같은 dbms나 firewall, cron 같은 기본 서비스도 systemctl을 통해 관리하게 된다.
이런 서비스들은 systemctl 로 중지, 시작, 재시작을 하는데 등록된 서비스명이 기억나지 않거나 몰라 헤매는 경우가 있다.
예를 들어 postgresql 서버를 재기동하고 싶은데 등록된 서비스명이 postgres인지 postgresql인지 헤매는 것이다. 등록되지 않은 서비스명을 입력하면 Unit not found를 뱉는다.
[root@localhost /]# systemctl restart postgres
Failed to restart postgres.service: Unit not found.
[root@localhost /]# systemctl restart postgresql
Failed to restart postgresql.service: Unit not found.
이럴 땐 list-units과 grep을 섞어서 postgres가 포함된 서비스를 찾아보면 바로 확인된다.
systemctl list-units | grep postgres
서비스명을 확인하면 문제 없이 재기동 할 수 있다.
systemctl restart postgresql-12.service
혹시 systemctl에 등록된 모든 활성 서비스를 보고 싶으면 grep없이 list-units 를 쓰면 된다.
systemctl list-units
비활성 서비스까지 보려면
systemctl list-units --all
명령어를 사용한다. 근데 딱히 쓸일은 없는 거 같다.