프로세스를 체크해서 실행스크립트 변수를 다르게 하고 싶습니다.
글쓴이: testano / 작성시간: 수, 2013/01/30 - 2:09오전
안녕하세요.
듀얼 튜너 TV 카드를 이용하여 cron 에 넣어서 예약녹화를 하고 있습니다.
그런데,
mplayer -dumpstream dvb://1@ebs -dumpfile /home/shez/download/ebs.ts
스크립트가 간단해서 이렇게 되는데요.
dvb://1@ebs 는 1번 튜너, dvb://2@ebs 는 2번 튜너를 사용하여 녹화를 하는것입니다.
그런데, 동시간대에 여러 프로그램이 있고 ,
가끔 TV 시청을 하다보니 사용중인 Tuner 번호선택을 잘못해서 녹화가 되지 않는일이 종종 있습니다.
그래서 쉘 스크립트안에서 위에 프로세스중 dvb://1@ 이나 dvb://2@을 감지해서, 자동으로 사용하지 않는 튜너로 녹화를 하고 싶은데요.
어떻게 하면 될까요?
쉘 스크립트는 전혀 몰라서요.
고수님들께 부탁드리겠습니다.
Forums:
음 ..
script 시작시에 touch /tmp/tuner1_used 와 같이 임시 파일 생성하고, script 종료시에 이 파일 삭제 하도록 하면..
간단히 mutex 흉내를 낼 수 있을 것 같네요.
파일이 있으면 그 튜너가 사용중이니, 다른 튜너를 고를 수 있겠죠.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
봐도 잘 모르겠지만..
한번 해볼께요..답변 정말 감사합니다.^^
해봤는데요, 녹화시간(길이)을 어떻게 지정하는지를 모르겠습니다.
중간에 cron 으로 프로세스를 죽이면 /tmp/tuner1_used 이 파일이 지워지지 않아서 다음 녹화를 할 수가 없었습니다.
..작업 .. 이라고 하신부분에 녹화 실행부분을 넣어서 돌렸는데, 튜너는 제대로 잘 찾았습니다.
그런데, 중간에 스크립트를 중지시키면, /tmp/tuner* 파일이 남아서 수동으로 삭제를 해야 했습니다.
mplayer -dumpstream dvb://$selected_tuner@$channel -dumpfile /home/shez/download/$DAT.ts
이 부분을 일정 시간(1시간) 동안만 실행한후
/bin/rm -f /tmp/tuner${selected_tuner}_used
exit 0;
이 부분을 실행하게 하고 싶은데 어떻게 해야 할까요?
지금까지 무식하게 해오던 방식으로 써야 할까봅니다. ^^
음 ..
그건 어디까지나 스크립트가 정상적으로 수행되고 종료되었을 때를 가정한거라..
중간에 스크립트를 강제로 종료 시키셨다면 저 임시 파일들은 직접 정리를 해주셔야 합니다.
trap 을 걸어서 처리할 수도 있기는 한데, SIGKILL 로 죽이는 경우에는 어차피 같은 상황이라..
가급적 스크립트가 제대로 수행되도록 해 주는게 나을 것 같네요.
mplayer 에 timeout 관련된 옵션이 없다면, linux 명령에 timeout 이란게 있습니다.
timeout 1h mplayer ..
를 주고 실행하면 해당 시간이 경과한 후에는 mplayer 명령에 TERM 시그널을 날립니다.
-s 옵션으로 KILL(9) 같은 다른 시그널을 지정할 수도 있습니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
터미널에선
터미널에선
time 1h mplayer ......
는 해보니 안되더군요...
time --foreground 1m mplayer ... 저 옵션을 줬더니 제대로 녹화도 되고, /tmp/tuner* 파일도 남기지 않았습니다.
이전에는 cron 에 이렇게 넣어서 사용했는데요..
30 15 * * 0 /home/shez/rec/inki.sh
0 17 * * 0 ps -ef | grep sbs | awk '{print $2}' | xargs kill -9
좀 귀차니즘때문에 질문을 하게 되었는데, 녹화할 프로그램이 수십개이다 보니 이제와서 다 바꾸기도 뭐한거 같습니다.
혹시 처음으로 TV 예약녹화를 하시는 분들께서는 ymir 님의 말씀에 따라하시면, 만들어야 할 스크립트수가 많이 줄어들것 같습니다.
아직 cron에 넣어서는 안돌려봐서 된다 안된다 말씀은 못드리겠습니다.
급히 녹화할때 쓰는 스크립트에만 적용해서 사용할까 합니다.
답변 주신 ymir 님 정말 감사합니다. ^^
댓글 달기