首页 > 解决方案 > ffmpeg 在被 cron 调用时返回“没有这样的进程”错误

问题描述

我有一个 .sh 脚本每小时从声卡录制

 #!/bin/bash

if ps -efa | grep -v grep | grep ffm | grep /home/user/auto-record > /dev/null
then
    echo running
    exit
else
   /usr/bin/ffmpeg -y -f pulse -i alsa_input.pci-0000_00_14.2.analog-stereo -loglevel fatal -f segment -strftime 1 -segment_time 3600 -segment_atclocktime 1 -c:a libmp3lame -b:a 192k /home/user/auto-record/%Y-%m-%d/rec_%H-%M-%>
fi

它检查是否有 ffmpeg 正在运行,如果没有,则开始录制。我每分钟在 crontab 中将其设置为 cronjob

* * * * * /bin/bash /home/user/autoRec.sh

但它返回给我错误

alsa_input.pci-0000_00_14.2.analog-stereo: No such process

如果我只是将它作为/home/user/autoRec.sh运行,它会按预期工作。我错过了什么?

解决了

显然

解决了这个问题

/home/USERNAME/.bashrc
/home/USERNAME/.profile

export PULSE_RUNTIME_PATH="/run/user/$(id -u)/pulse/"
export XDG_RUNTIME_DIR="/run/user/$(id -u)"


PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
export DISPLAY=:0.0

标签: linuxcronpermissions

解决方案


推荐阅读