티스토리 뷰

나는 터미널(putty, telnet, ssh)등으로 라즈베리파이에 접속을 하면서 명령어를 통해서 프로그램을 동작시키면 터미널 연결이 끊어져도 프로그램이 계속 동작될 줄 알았다. 


왜냐하면 본체는 라즈베리파이이고 터미널은 말그대로 연결만 한것이기 때문에, 그런데 프로젝트의 기능중 LED를 공식에 알맞게 출력하고 인터넷이 끊어진 상황에서도 계속적으로 출력되게 해야하는 부분이 있었는데 테스트 결과, 터미널이 연결되어 있을때는 정상적으로 출력이 되었으나, 연결이 끊기자 LED를 제어하는 코드도 동작을 멈춘것이다.


이때까지만 해도 터미널의 연결을 끊는다고 백그라운드로 동작하던 프로세스가 종료된다는것이 이상하다고 느꼈고 이 문제를 해결하기위해 인터넷을 뒤져서 방법을 찾았는데, 어렵지 않은 방법이었다.


답은 바로 리눅스 수업시간에 배웠던 nohup 명령에 있었다. (라즈베리파이의 운영체제인 라즈비안이 리눅스 기반이므로)


nohup <명령어> & 이와같은 방식으로 명령을 입력하면 터미널 연결이 끊어져도 코드는 계속적으로 동작하게 된다. 따라서 nohup sudo python ~~~.py& 이와같이 접두에 nohup 명령을 붙여서 실행을 했더니 터미널을 끊어도 정상적으로 동작하게 되었다. 접미에 붙이는 &은 백그라운드로 실행하기 위해서 붙인다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함