본문 바로가기
OS/Ubuntu

Ubuntu에서 부팅 시 실행되는 프로그램 관리

by yazasus 2025. 7. 16.
728x90

Ubuntu 부팅 시 자동 실행 프로그램 관리 개요

서버나 데스크톱 환경에서 특정 스크립트나 애플리케이션을 부팅 직후 실행하도록 설정하면 운영·개발 효율이 높아집니다. Ubuntu에서는 systemd, cron, rc.local 등 다양한 방법으로 부팅 자동 실행을 관리할 수 있습니다.

1. systemd 서비스 파일 만들기

systemd는 현대 Ubuntu의 기본 init 시스템입니다. `/etc/systemd/system/`에 `.service` 파일을 작성하고, `WantedBy=multi-user.target`을 지정하면 부팅 시 자동 시작됩니다.

# 예시: /etc/systemd/system/myapp.service
[Unit]
Description=MyApp 자동 실행

[Service]
ExecStart=/usr/local/bin/myapp.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

sudo systemctl daemon-reload
sudo systemctl enable myapp.service

2. cron @reboot 옵션 사용

cron의 `@reboot`은 부팅 직후 한 번만 명령을 실행할 때 유용합니다. 사용자별 crontab에 등록하면 sudo 없이도 실행할 수 있습니다.

crontab -e
# 매 부팅 시 myscript.sh 실행
@reboot /home/username/myscript.sh >> /home/username/logs/boot.log 2>&1

3. /etc/rc.local 스크립트 활용

Ubuntu 18.04 이전 버전에서 주로 사용하던 방법이지만, rc-local service를 활성화하면 최신 버전에서도 동작시킬 수 있습니다. `/etc/rc.local`에 실행 명령을 추가하세요.

sudo nano /etc/rc.local
# !/bin/bash
/home/username/startup.sh &
exit 0

sudo systemctl enable rc-local

4. 데스크톱 환경 GUI 자동 실행

GNOME, KDE 같은 데스크톱에서는 `~/.config/autostart/`에 `.desktop` 파일을 넣어 GUI 애플리케이션을 자동 실행할 수 있습니다. 아이콘, 이름, 실행 경로를 설정하세요.

[Desktop Entry]
Type=Application
Name=MyApp
Exec=/usr/local/bin/myapp-gui
X-GNOME-Autostart-enabled=true

마무리 및 실무 팁

부팅 자동 실행 설정 후에는 `systemctl status`, `journalctl -b` 또는 로그 파일을 통해 정상 실행 여부를 반드시 확인하세요. 서비스 충돌이나 권한 문제를 조기에 발견할 수 있습니다.

실무 팁: systemd 타이머(`.timer`)를 사용하면 부팅 이후 지연 시간 후에 작업을 실행할 수 있어, 네트워크나 파일 시스템이 완전히 올라온 뒤에 스크립트를 구동하는 데 유리합니다.

728x90