본문 바로가기
【Fundamental Tech】/Ubuntu

부팅시 스크립트 자동 실행시키기(rc.local)

반응형

1. 실행할 명령어 또는 스크립트 작성

실행할 명령어 또는 스크립트를 작성하고 실행 권한을 줍니다.

/root에 Workspace라는 디렉터리를 생성하는 명령어를 등록하겠습니다.

mkdir /root/Workspace

 

2. rc.local 파일 생성 및 편집

위에서 실행할 명령어 또는 스크립트를 작성했다면, /etc/rc.local 파일을 sudo 권한으로 열어 줍니다. 

sudo vi /etc/rc.local

Ubuntu 20.04에서 파일을 열었을 때 기존 아무 설정을 하지 않았다면 빈파일 입니다.

#!/bin/bash를 추가하고 원하는 명령어 또는 스크립트를 실행하는 명령어를 작성해 줍니다.

#!/bin/bash

mkdir /root/Workspace

 

3. rc.local 서비스 활성화

Ubuntu20.04는 rc.local 파일이 기본적으로 비활성화 되어 활성화해 주어야 합니다. 작성한 rc.local 파일에 실행 권한을 줍니다.

sudo chmod +x /etc/rc.local

or

sudo chmod 755 /etc/rc.local

 

systemd에서 rc-local.service 파일을 수정하여 런레벨에 대한 설정을 추가해 줍니다.

sudo vi /lib/systemd/system/rc-local.service

WantedBy=multi-user.target을 아래와 같이 파일 맨 아래에 추가해 줍니다.

#  SPDX-License-Identifier: LGPL-2.1+
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[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 서비스 역시 재부팅시에도 자동 실행되게 등록해주고 실행시켜 줍니다.

sudo systemctl enable rc-local.service
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service

 

 

반응형