systemd unit 편집기 바꾸기
systemd 는 이제 리눅스 시스템의 뼈대가 되는 기본운영 방법이 되었다. 기존에는 System V Init 이였지만 RHEL 7, Ubuntu 16.04부터 기본 시스템운영 프로그램이 되었다.
systemd 는 ‘ctl’ 로 끝나는 명령어들의 집합으로 제어가 가능하다. systemctl, journalctl, timedatectl, hostnamectl, loginctl 이 대표적이다. systemctl 의 경우에는 systemd unit 파일들에 대한 제어와 설정이 가능하다. systemd unit 파일은 기존의 Systemv V init Script 를 대체하는 것으로 일종의 시스템 데몬 프로그램들이라고 보면 된다. 시스템이 시작될때에 자동으로 시작되게 한다거나 종료하게 한다거나 하는것들을 가능하게 한다.
unit 파일은 텍스트 파일이기 때문에 언제든지 파일을 열어서 편한대로 편집이 가능한데, systemctl 명령어는 이런 unit 파일에 대한 편집기능을 제공 한다. unit 파일이 있는 곳으로 가서 텍스트 편집기를 열 필요가 없이 systemctl edit –full 명령어를 이용하면 가능하다.
문제는 systemctl edit — full 명령어를 입력했을 때에 실행되는 에디터가 nano 로 열리는 경우가 많은데, 이것을 바꿀 수 있다.
다음의 내용은 다음의 링크 내용을 정리한 것이다.
SYSTEMD_EDITOR 환경변수 설정
제일 쉬운 방법은 SYSTEMD_EDITOR 환경변수 설정이다. 대부분 Bash 를 사용하기 때문에 이것을 다음과 같이 쉘 환경변수로 설정 해준다.
1 |
export SYSTEMD_EDITOR=vim |
매번 로그인 할때마다 입력하기 귀찮으면 ~/.bashrc 파일에 추가해주면 로그인할때마다 자동 적용된다.
만일 일반계정으로 로그인을 하고 sudo systemctl edit –full 명령어를 이용한다면 /etc/sudoers 파일에 다음을 추가해 줘야 한다.
1 2 |
sudo visudo Defaults env_keep += "SYSTEMD_EDITOR" |
sudo 를 실행하는 계정에 있는 환경 변수인 SYSTEMD_EDITOR 를 유지하라는 뜻이다.
update-alternatives 로 기본 에디터 변경
update-alternatives 는 alternative 가 가능한 여러 명령어들을 바꿔 주는 기능을 한다. 이것은 매우 유용한데, 예를들어 Python3 관련 버전이 여려개일 경우에 python3 에 기본 버전을 시스템적으로 지정해 줄 수 있다. update-alternatives –list 명령어를 입력하면 현재 등록된 대체가능한 명령어들이 보인다.
리눅스에서 편집기는 editor 라는 명령어로 되어 있고, 정확하게는 심볼릭 링크다, 이것을 update-alternatives 명령어로 바꿔주면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 |
update-alternatives --config editor 대체 항목 editor에 대해 (/usr/bin/editor 제공) 4개 선택이 있습니다. 선택 경로 우선순� 상태 ------------------------------------------------------------ * 0 /bin/nano 40 자동 모드 1 /bin/ed -100 수동 모드 2 /bin/nano 40 수동 모드 3 /usr/bin/vim.basic 30 수동 모드 4 /usr/bin/vim.tiny 15 수동 모드 현재 선택[*]을 유지하려면 <엔터>를 누르고, 아니면 선택 번호를 입력하시오: |
위에 내용을 보면 기본 에디터로 nano 가 설정되었다고 나온다. 이것을 바꿔주면 시스템적으로 기본 에디터가 변경되게 된다.
EDITOR 환경변수 지정
실행할때에마다 EDITOR 환경변수를 다음과 같이 지정해주면 된다.
1 |
sudo EDITOR=vim systemctl edit <foo> |