다양한 작업 디렉터리를 사용하여 시작 스크립트 작성

다양한 작업 디렉터리를 사용하여 시작 스크립트 작성

올해 초 저는 3D 프린터를 제어하기 위해 Raspberry Pi에 octoprint를 설치했습니다.

저는 octoprint를 사용하여 동시에 pi 제어 2 프린터를 가질 수 있었습니다. 두 번째 프린터를 보기 위해 두 번째 카메라(USB)도 추가했습니다. 나는 두 번째 카메라를 실행하고 옥토프린트를 편집하여 둘 사이의 차이점을 확인하는 방법을 찾았습니다.

내 유일한 문제는 라즈베리 파이를 다시 부팅할 때마다 다른 작업 디렉터리로 변경해야 한다는 것입니다.

cd ~/mjpg-streamer

그런 다음 두 번째 카메라를 시작합니다.

./mjpg_streamer -i "./input_raspicam.so -fps 5" -o "./output_http.so -p 8090"&

부팅 시 카메라를 시작하는 스크립트를 작성하여 매일 Raspberry Pi에 SSH로 로그인하고 명령을 보낼 필요가 없도록 하고 싶습니다. 시작 스크립트 작성에 대한 많은 정보를 찾았지만 그 안에 있는 작업 디렉터리를 변경하는 방법에 대해서는 찾지 못했습니다.

나는 이것을 사용하여 시작 스크립트를 작성했습니다(실패):

sudo nano /etc/init.d/startsecondcamera

답변1

수동으로 수행하는 것처럼 시작 스크립트에서 cd실행 전 작업을 수행하도록 합니다.mjpg_streamer

#!/bin/sh

cd /home/geilisa/mjpg-streamer
./mjpg_streamer -i "./input_raspicam.so -fps 5" -o "./output_http.so -p 8090"

이는 홈 디렉토리가 이라고 가정합니다 /home/geilisa.

~루트로 실행될 수 있으므로 스크립트에서는 사용할 수 없습니다 . 유틸리티를 루트로 실행하는 데 문제가 있는 경우 sudo -u gelisia ./mjpg_streamer ...스크립트에서 사용자로 실행을 사용하십시오 gelisia.


또 다른 접근 방식은 시작 시 실행되는 크론 작업을 추가하는 것입니다.

@reboot cd /home/geilisa/mjpg-streamer && ./mjpg_streamer -i "./input_raspicam.so -fps 5" -o "./output_http.so -p 8090"

명령을 사용하여 crontab에 추가하세요 crontab -e. 그러면 crontab(아마도 빈 파일)이 있는 편집기가 열립니다. 위의 줄을 추가하고 저장하고 종료하십시오.

내가 아는 한, 대부분의 크론은 일반적으로 실제 명령 앞에 오는 5개의 작업 일정 열 대신 @reboot( 및 @hourlyetc ) 사용을 허용합니다.@daily

관련 정보