launchd를 사용하여 백그라운드에서 내 OS X 응용 프로그램의 웹캠에서 이미지를 캡처하는 데 'imagesnap'명령을 사용하고 있습니다 (셸 스크립트 사용).imagesnap 명령을 사용한 이미지 캡처
파일 이름 : 나는 응용 프로그램 번들 경로에서 스크립트 및 PLIST 파일을 모두 보관
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>GroupName</key>
<string>user</string>
<key>UserName</key>
<string>root</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>test</string>
<key>ProgramArguments</key>
<array>
<string>Path_to_ CaptureCameraPic </string>
</array>
<key>OnDemand</key>
<false/>
<key>Nice</key>
<integer>1</integer>
<key>StartInterval</key>
<integer>10</integer>
<key>StandardErrorPath</key>
<string>Path_to_Error_log.log</string>
<key>StandardOutPath</key>
<string>Path_to_Output_log.log</string>
</dict>
</plist>
처럼 CaptureCameraPic
#!/bin/bash
timestamp=$(date +"%Y%m%d%H%M%S")
homeDirectory=$HOME/Documents
# Create Project Directory
if [ -d "$homeDirectory/MyApp" ]; then
echo "MyApp Directory exists"
cd $homeDirectory/MyApp
homeDirectory=$homeDirectory/MyApp
else
echo "MyApp Directory does not exists"
echo "Creating MyApp Directory"
cd $homeDirectory/
mkdir MyApp
echo "Created MyApp Directory successfully"
cd $homeDirectory/MyApp
homeDirectory=$homeDirectory/MyApp
fi
# Camera
if [ -d "$homeDirectory/Camera" ]; then
# Control will enter here if $DIRECTORY exists.
echo "Camera Directory exists"
cd $homeDirectory/Camera
camera_filename="IMG_${timestamp}.jpg"
echo "Take picture $camera_filename"
imagesnap "$camera_filename"
else
echo "Directory does not exists"
echo "Create directory"
cd $homeDirectory
mkdir Camera
cd $homeDirectory/Camera
camera_filename="IMG_${timestamp}.jpg"
echo "Take picture $camera_filename"
imagesnap "$camera_filename"
fi
그리고 내 PLIST (test.plist)가 보인다.
내 os x 응용 프로그램에서 로그인 버튼을 클릭하면 pl30을 /Library/LaunchDaemons/으로 복사했습니다.
스크립트 실행 (나는, 폴더 생성과 같은 출력 파일에 등을 로그 인쇄를 볼 수 있습니다)에 (launchctl로드 path_to_plist_in_LaunchDaemon_folder를 사용하여)를 시작합니다. 내가 뭔가 잘 작동
chmod +x CaptureCameraPic
./CaptureCameraPic
같은 터미널에서이 스크립트를 실행하고 때
그러나 'imagesnap'에 대한
, 그것은 오류imagesnap: command not found
을 던지는에 불과하다.
도움이 필요하십니까?
'imagesnap' 명령은 무엇입니까? 나는 그것에 대해 들어 본 적이 없다 - 그것이 어디에서 왔는가? –
@MarkSetchell : 확인해주세요. 방금 imagesnap ref로 질문을 업데이트했습니다. URL (http://www.iharder.net/current/macosx/imagesnap/). –
터미널에서 'imagesnap'을 시도하십시오. 경로를 찾으면 찾을 수 있습니다. 그런 다음 스크립트에 전체 경로를 입력하십시오. – Roger