2020년 10월 3일 토요일

우분투 부팅 시 파이썬 프로그램 자동 실행 방법

이 글은 우분투 리눅스에서 부팅 시 특정 파이썬 프로그램 등을 자동 실행(autorun)하는 방법을 간단히 설명한 것이다.

파이썬 코딩
다음과 같이 /usr/bin 폴더 아래 파이썬 파일을 코딩한다.
sudo vim /usr/bin/test_service.py

소스 코드는 다음과 같다.
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("localhost", 8877))
s.listen(1)
 
while True:
    conn, addr = s.accept()
    data = conn.recv(2048)
    conn.close()
    print(data)

서비스 등록 및 시작
서비스 설정 파일을 생성한다.
sudo vim /lib/systemd/system/test.service

내용은 다음과 같다.
[Unit]
Description=Test Service
After=multi-user.target
Conflicts=getty@tty1.service

[Service]
Type=simple
ExecStart=/usr/bin/python3 /usr/bin/test_service.py
StandardInput=tty-force

[Install]
WantedBy=multi-user.target

다음과 같이 생성된 서비스를 실행한다.
sudo cp test.service /lib/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable test.service
sudo systemctl start test.service

다음 명령으로 재실행할 수도 있다
sudo systemctl restart test.service 

정상적인 실행 결과는 다음과 같다.

레퍼런스

댓글 3개:

  1. 안녕하세요 좋은 글 많이 보고 배우고 있습니다!
    다름이 아니라 제가 똑같이 샘플로 진행을 해봤는데 로그인이 되고 마우스도 움직이지만 보라색 화면만 나오는 상태가 되었습니다..ㅠㅠㅠ 혹시 이러한 이슈를 해결할 수 있는 방법이 있을까요? grub창도 안넘어가고 ctrl+alt+f3 도 동작을 안합니다..

    OS : Ubuntu18.04 이고 GPU : NVIDIA 2070super 입니다!

    답글삭제
    답글
    1. 서비스 등록하는 데, 보라색 화면이 나오는 현상은 저도 듣보잡이라... 모르겠습니다. 한번 서비스 등록 해제해 보시고, 같은 현상이 나오면, 서비스와는 관계 없는 문제니 그곳에서 해결해 보시는 게 좋을 듯 해요.

      삭제
  2. Thanks for sharing a very informative article! Are you looking for the best web development, app development & Node JS Development Services then visit us now.

    답글삭제