Bash에서 omxplayer의 기본 출력을 얻지 않는 방법

Bash에서 omxplayer의 기본 출력을 얻지 않는 방법

저는 쉘을 사용하고 Python의 os.system()을 사용하여 모션이 감지될 때마다 bashwav 파일을 재생하고 있습니다 . omxplayer움직임이 감지될 때마다 인쇄할 수 있었지만 "Beep"omxplayer에는 실행될 때마다 기본 출력이 있어서 로그가 막히게 됩니다.

Audio codec pcm_s16le channels 1 samplerate 44100 bitspersample 16
Subtitle count: 0, state: off, index: 1, delay: 0
have a nice day ;)

pr=사운드를 배치하는 Python 코드는 다음과 같습니다.

import os
import time
from gpiozero import MotionSensor
while True:
    if MotionSensor(4).motion_detected:
        os.system("omxplayer beep-06.wav")
        print("Beep!")
        time.sleep(1)

omxplayer가 이 메시지를 출력하지 않고 그냥 출력하게 하려면 어떻게 해야 합니까 print("Beep!")? 밤새 실행되기 때문에 이것을 사용하고 있으며 SSH를 통해 이 작업을 수행하고 Raspbian을 실행하는 Raspberry Pi 3 B+(중요한 경우)의 명명된 파일 nohup python3 alarm.py > alarm.out 2>&1로 출력을 리디렉션합니다 . alarm.out미리 감사드립니다!

답변1

명령의 출력을 보고 싶지 않은 경우 표준 오류 및 표준 출력을 다음으로 리디렉션하면 됩니다 /dev/null.

    os.system("omxplayer beep-06.wav >/dev/null 2>&1")

이렇게 하면 출력과 오류가 로 전송되지만 /dev/null사용자는 이를 볼 수 없습니다.

관련 정보