데비안 및 우분투 최근 배포버전에서는 rc.local이 비활성화 되어있다.
따라서, 리눅스 부팅도중 어떠한 프로그램을 실행시키려면 rc-local 서비스를 활성화 하여야 한다.
1. 실행할 대상을 생성
rc-local.service는 /etc/rc.local 파일을 열어서 실행하도록 설정되어있다. 따라서 다음과 같이 rc.local 파일을 생성한다.
$ sudo cat > /etc/rc.local
----------------------------------------------------------------------
#!/bin/sh
<실행할 바이너리를 기록 - 가능하면 절대경로로 작성한다.>
exit 0
----------------------------------------------------------------------
그리고 소유권을 실행가능한 파일로 설정한다.
$ sudo chmod 755 /etc/rc.local
2. rc-local.service 파일 수정
서비스를 실행하기 위해서 rc-local.service 파일을 수정한다.
수정할 내용은 가장 마지막에 [Install] 항목이다.
$ sudo vim /lib/systemd/system/rc-local.service
-----------------------------------------------------------------------
...생략...
[Service]
Type=forking
ExecStart=/etc/rc.local start
...생략...
GuessMainPID=no
[Install]
WantedBy=multi-user.target
3. 서비스 실행
1). 서비스 활성화
$ sudo systemctl enable rc-local.service
2) 서비스 시작
$ sudo systemctl start rc-local.service
3) 서비스 상태 확인
명령을 확인하면 아래와 같이 Active에 Active(녹색)라고 표시되어야 한다. 만약 Failed라고 표시되었다면, 스크립트 또는 서비스 설정등에 문제가 있는 경우이다. 간혹 리부팅전에는 Failed등으르로 표시될 수 있는 서비스가 있으므로 가능하면 확인은 리부팅후 아래의 명령을 통해서 해보는 것이 좋다.
$ sudo systemctl status rc-local.service
--------------------------------------------------------
systemctl status rc-local.service
● rc-local.service - /etc/rc.local Compatibility
Loaded: loaded (/lib/systemd/system/rc-local.service; enabled; vendor pres>
Drop-In: /usr/lib/systemd/system/rc-local.service.d
mqdebian.conf
Active: active (exited) since Tue 2021-04-13 03:21:27 KST; 13min ago
Docs: man:systemd-rc-local-generator(8)
Process: 371 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)
CPU: 5ms
Apr 13 03:21:27 imx systemd[1]: Starting /etc/rc.local Compatibility...
Apr 13 03:21:27 imx systemd[1]: Started /etc/rc.local Compatibility.
최근댓글