경로 단위와 타이머의 기능을 동시에 가질 수 있는 방법이 있는지 궁금합니다. 아이디어는 시스템에서 경로가 발견되었지만 오전 9시에서 오후 6시 사이에만 발견되면 특정 서비스를 시작한다는 것입니다.
ffmpeg
현재 USB 카메라를 사용할 수 있을 때마다 시작되는 다음 경로/서비스가 있습니다 /dev/video4
.
카메라 경로:
[Unit]
Description=USB Camera Stream Service Path
[Path]
PathExists=/dev/video4
Unit=camera.service
[Install]
WantedBy=multi-user.target
카메라 서비스:
[Unit]
Description=USB Camera Stream Service
[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/bin/ffmpeg -f v4l2 -input_format h264 -video_size 1920x1080 -i /dev/video4 -copyinkf -codec copy -f flv rtmp://127.0.0.1/live/stream
systemctl start camera.service
참고: 또한 언제든지 서비스를 수동으로 시작할 수 있기를 원합니다 .
감사해요.
답변1
가장 쉬운 방법은 아마도 systemd
현재 시간을 테스트하고 지정된 범위 내에서 명령을 실행하는 스크립트를 실행하는 것입니다.
예를 들어 다음과 같은 스크립트를 만듭니다 /usr/local/bin/myscript
.
#!/bin/sh
if [ $(date +%H) -ge 9 -a $(date +%H) -le 18 ]; then
ffmpeg -f v4l2 -input_format h264 -video_size 1920x1080 -i /dev/video4 -copyinkf -codec copy -f flv rtmp://127.0.0.1/live/stream
fi
스크립트에 실행 권한을 부여해야 합니다.
sudo chmod +x /usr/local/bin/myscript
그런 다음 다음 줄을 변경하십시오 camera.service
.
ExecStart=/usr/bin/ffmpeg -f v4l2 -input_format h264 -video_size 1920x1080 -i /dev/video4 -copyinkf -codec copy -f flv rtmp://127.0.0.1/live/stream
이와 관련하여:
ExecStart=/usr/local/bin/myscript