Debian 10系统Beaglebone AI开机后台运行PTP命令的实现方法
解决方案
1. 修改脚本让ptp4l后台运行
问题核心是ptp4l命令会持续占用前台进程,导致脚本后续步骤无法执行。只需在该命令末尾加上&符号,将其转入后台运行:
修改后的startscript.sh内容:
#!/bin/bash sleep 20 ptp4l -A -H -q -s -i eth0 & sleep 40 phc2sys -a -rr
&符号的作用是将前面的命令放到后台执行,脚本会继续推进到后续的sleep 40和phc2sys命令。
2. 确保脚本权限正确
如果脚本没有执行权限,开机自启会失败,执行以下命令添加可执行权限:
chmod +x /home/debian/startscript.sh
3. 修正crontab的文件名拼写
原crontab配置里的startsript.sh存在拼写错误,需和实际脚本名startscript.sh保持一致,修正后的crontab内容:
@reboot /home/debian/CMBini @reboot /home/debian/startscript.sh
4. 可选:重定向ptp4l输出避免日志堆积
如果ptp4l持续输出内容,可能占用系统存储,可将输出重定向到空设备或日志文件:
ptp4l -A -H -q -s -i eth0 > /dev/null 2>&1 &
> /dev/null:丢弃标准输出2>&1:将错误输出重定向到标准输出,一同丢弃- 若需保留日志,可替换为
> /var/log/ptp4l.log 2>&1 &
内容的提问来源于stack exchange,提问作者19mike95
相关产品推荐
相关产品推荐

