이번에 몇년 쓰던 개인 서버를 한번 깔끔하게 밀고 Ubuntu (Ver. 18.04)를 새로 올리다보니 한가지 벽에 부딪혔다. 새로운 Ubuntu부터는 systemd 기반으로 PID들이 관리가 되서 rc.local이 사라져버렸다. systemd 기반도 나름 편하긴 하다. 몇 번 쓰다보니 패키지들의 Start/Stop 등이 손쉽게 되긴 하는데, 그럼에도 불구하고 개인적으로 만든 실행 파일을 부팅시에 꼭 실행하고 싶은 니즈가 있어 rc.local을 살려내는 방법을 만방에서 찾기 시작. 결국 있긴 했다.
- 관리자 권한 획득 – 지속적으로 sudo를 치는 것이 번거로우니 관리자 권한을 얻고 시작한다.
sudo su
- rc.local File 생성 – 없는 파일을 만들어 줘야 한다.
printf ‘%s\n’ ‘#!/bin/bash’ ‘exit 0’ | sudo tee -a /etc/rc.local sudo
- 실행 파일로 만들기
chmod +x /etc/rc.local
- rc-local.service 파일 수정
/lib/systemd/system/rc-local.service
아래 붉은 Font 부분을 추가해준다.
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
[Install]
WantedBy=multi-user.target
- rc-local 활성화
systemctl enable rc-local.service
- 실행
systemctl start rc-local.service
- 상태 확인
systemctl status rc-local.service