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`)를 사용하면 부팅 이후 지연 시간 후에 작업을 실행할 수 있어, 네트워크나 파일 시스템이 완전히 올라온 뒤에 스크립트를 구동하는 데 유리합니다.

'OS > Ubuntu' 카테고리의 다른 글
| Ubuntu에서 XWindow GUI 설정 및 Run Level 변경 가이드 (0) | 2025.07.18 |
|---|---|
| Ubuntu에서 GUI 프로그램 설치하기 (apt, snap, flatpak) (1) | 2025.07.17 |
| Ubuntu에서 APT 패키지 업데이트 및 업그레이드 (0) | 2025.07.15 |
| Ubuntu에서 커맨드라인에서 파일 찾기 (find, locate 명령어) (0) | 2025.07.14 |
| Ubuntu에서 자동 업데이트 취소하고 수동 관리하기 (1) | 2025.07.13 |