systemd 관련 명령
systemd 기반으로 서비스를 시작하거나 종료할 때 사용하는 명령이 바로 systemctl 입니다.
systemctl | |
기능 | systemd를 제어한다 |
형식 | systemctl [옵션] [명령] [유닛명] |
옵션 | -a : 상태와 관계없이 유닛 전체를 출력한다. -t 유닛 종류 : 지정한 종류의 유닛만 출력한다. |
명령 | start : 유닛을 시작한다. stop : 유닛을 정지한다. reload : 유닛의 설정 파일을 다시 읽어온다. restart : 유닛을 재시작한다. status : 유닛 상태를 출력한다. enable : 부팅 시 유닛이 시작하도록 설정한다. disable : 부팅 시 유닛이 시작하지 않도록 설정한다. is-active : 유닛이 동장하고 있는지 확인한다. is-enabled : 유닛이 시작되었는지 확인한다. isolate : 지정한 유닛 및 이와 관련된 유닛만 시작하고 나머지는 정지한다. kill : 유닛에 시그널을 전송한다. |
사용 예 | systemctl systemctl -a systemctl start atd.service |
systemctl 명령에서 유닛을 지정할 때는 유닛의 종류는 제외해도 괜찮습니다. 예를 들어 dhcpd.service 를 지정할 때 그냥 dhcpd 만 지정해도 상관 없다는 이야기입니다.
전체 유닛 출력하기 : -a 옵션
systemctl 명령에 -a 옵션을 적용하면 전체 유닛이 출력됩니다.
상태와 관계 없이 모든 유닛을 가져오기 때문에 굉장히 많은 유닛이 출력됩니다.
특정 유닛 출력하기 : -t 옵션
특정 유닛만 출력하려면 -t 옵션을 사용하면 됩니다. service 유닛만 출력해보도록 하겠습니다.
-a 옵션과는 갯수 차이가 확연하게 나는 것을 확인할 수 있었습니다.
유닛 서비스 시작하기 : start 명령
유닛 서비스를 시작하려면 start 명령을 사용합니다. 다만 서비스를 시작 또는 정지하는 명령은 root 권한이기 때문에 sudo를 사용해야 합니다.
cron.service 서비스를 시작해 보겠습니다.
sudo 를 통해 cron 서비스를 실행하고, 확인을 위해 is-active 명령을 사용했습니다.
active 출력결과로 미뤄보아 cron service 가 제대로 실행된 것을 확인할 수 있었습니다.
유닛 상태 확인하기 : status 명령
유닛의 상태를 확인해보는 명령입니다. 현재 active 상태인 cron의 status 를 확인해보려고 합니다.
데몬의 이름이 cron이고, PID가 786번이며 현재 active 상태인 것 등. 다양한 정보가 출력되는 것을 확인할 수 있었습니다.
유닛 서비스 정지하기 : stop 명령
시작하는 것이 가능하니 당연히 정지하는 것도 가능할 겁니다. 유닛을 정지하기 위해서는 stop 명령을 사용하면 됩니다. 다만 해당 부분은 어떤 서비스가 작동중인지 정확하게 이해하고 있지 못한 상태이기 때문에, 함부로 아무 서비스를 정지하면 안됩니다.
저는 현재 active 상태인 cron 서비스를 정지해보려고 합니다.
정지는 root 권한이 필요하기 때문에 sudo 를 통해서 cron을 stop 하고, 직후 status를 통해 현재 cron 서비스의 상태를 확인해봤습니다.
작동상태가 inactive (dead) 인 것을 확인할 수 있었습니다.