본문 바로가기

보드팩토리 – SBC 커뮤니티

기술 Q&A

리눅스·OS

부팅 시 프로그램 자동 실행 방법 질문입니다

작성자소보로빵 Lv.2 준회원 작성일 조회79 댓글9

본문

오드로이드 N2+ · Raspberry Pi OS Lite 를 쓰고 있습니다. 전원은 정품 27W USB-C 어댑터 입니다.

파이썬 스크립트를 부팅할 때 자동으로 실행하고 싶은데 서비스로 등록해도 실행되지 않습니다.

rc.local 은 안 된다고 해서 systemd 로 만들었습니다.

혹시 원인을 아시는 분 계실까요?

추천0

답변 7

답변있음
5

스크립트 안의 상대 경로가 문제일 수 있습니다. WorkingDirectory 를 지정하세요.

[Unit]
Description=my app
After=network-online.target

[Service]
ExecStart=/usr/bin/python3 /home/pi/app.py
Restart=always
User=pi

[Install]
WantedBy=multi-user.target

저도 같은 증상이었는데 전원 어댑터를 바꾸고 해결됐습니다.

스마트홈러
0

journalctl -u 서비스이름 -b 로 로그를 보면 원인이 바로 나옵니다.

[Unit]
Description=my app
After=network-online.target

[Service]
ExecStart=/usr/bin/python3 /home/pi/app.py
Restart=always
User=pi

[Install]
WantedBy=multi-user.target

공식 포럼에 같은 이슈가 올라와 있습니다. 커널 버전을 한 단계 내리면 된다는 답이 있었습니다.

벤치마커
0

저도 같은 증상이었는데 전원 어댑터를 바꾸고 해결됐습니다.

보드덕후
2

공식 포럼에 같은 이슈가 올라와 있습니다. 커널 버전을 한 단계 내리면 된다는 답이 있었습니다.

[Unit]
Description=my app
After=network-online.target

[Service]
ExecStart=/usr/bin/python3 /home/pi/app.py
Restart=always
User=pi

[Install]
WantedBy=multi-user.target

다른 SD카드에 깨끗한 OS 를 새로 구워서 같은 증상인지 먼저 확인해 보세요.

오버클럭
3

Wants=network-online.target 도 같이 넣어야 네트워크가 잡힌 뒤 실행됩니다.

[Unit]
Description=my app
After=network-online.target

[Service]
ExecStart=/usr/bin/python3 /home/pi/app.py
Restart=always
User=pi

[Install]
WantedBy=multi-user.target
픽셀아저씨
3

Wants=network-online.target 도 같이 넣어야 네트워크가 잡힌 뒤 실행됩니다.

로그를 먼저 보셔야 원인을 좁힐 수 있습니다. dmesg 와 journalctl 결과를 올려 주세요.

초보파이
로그 전체를 올려 주실 수 있나요? — 소보로빵
말씀하신 대로 하니 됩니다. 감사합니다. — 보드덕후
2

Wants=network-online.target 도 같이 넣어야 네트워크가 잡힌 뒤 실행됩니다.

[Unit]
Description=my app
After=network-online.target

[Service]
ExecStart=/usr/bin/python3 /home/pi/app.py
Restart=always
User=pi

[Install]
WantedBy=multi-user.target
보드덕후