간단한 cron 작업을 만드는 방법을 정말로 이해하지 못합니다. 아이디어는 mplayer가 특정 시간에 특정 파일을 재생하도록 하는 것입니다.
내 시도는 다음과 같습니다.
MIN HOUR * * * /usr/bin/mplayer PATH_TO_THE_FILE > /dev/null 2>&1
X 서버가 충돌할 뿐입니다. 내가 뭘 잘못했나요?
답변1
오디오만 원하는 경우 먼저 오디오 파일로 변환해야 합니다. 이렇게 하면 Pulseaudio 및 X를 처리하는 수고를 덜 수 있습니다.
옵션:
cron-job을 데스크탑 사용자 테이블에 넣고 루트가 아닌 해당 사용자로 실행하십시오. 바라보다
crontab -u
. 환경 변수를 설정해야 할 수도 있습니다(시도하지는 않았습니다). 데스크톱 사용자가 로그인하지 않고 Pulseaudio가 시작되지 않으면 이 작업이 실패합니다.허용하는 방법 알아보기Pulseaudio를 사용하는 다른 사용자, 그에 따라 구성하십시오. 데스크톱 사용자가 로그인하지 않은 경우에도 실패합니다.
펄스 오디오 실행전체 시스템.
Pulseaudio를 완전히 비활성화하고, 재생을 위해 ALSA를 사용하고, 장치의 권한이
/dev/snd/*
크론 작업의 사용자/그룹과 호환되는지 확인하세요.
또한, 그보다 더 간단한 프로그램을 사용하는 것을 고려해 보십시오 mplayer
(단, 재생할 수 있는 형식에 대해 알아 두십시오). 예를 들어 mpg123
매우 단순하거나 paplay
(Pulseaudio, WAV에만 해당) 또는 aplay
(ALSA, WAV에만 해당)입니다.
답변2
cron에서 시작된 작업은 tty 또는 모니터를 제어하지 않습니다. MIN
합계 대신 실수를 사용했다고 가정합니까 HOUR
?
해당 옵션을 추가해 보세요 -display
.
0 15 * * * /usr/bin/mplayer -display localhost.localdomain:0 PATH_TO_THE_FILE > /dev/null 2>&1
-display
특정 서버에 대한 매개변수를 조정해야 할 수도 있습니다.
답변3
파일을 재생하려면 명령줄 프로그램을 사용하는 것이 좋습니다. 그것은 다음과 같습니다 sox
:
패키지로 제공된다는 점에는 의심의 여지가 없습니다. play
해당 파일만 재생하는 별칭이 포함되어 있습니다 . 오디오 파일만 재생 되지만 sox
이는 문제가 되지 않는다고 명시하셨습니다.