如何实现开机启动raspivid输出至HDMI且支持按键终止运行
可行实现方案
方案1:systemd服务托管(最稳定,适配所有场景)
这是最适合开机自启类需求的实现方式,进程由系统管理器统一托管,不会出现孤儿进程、信号无法传递的问题,完美适配后续物理按键触发的需求。
配置步骤
- 新建service配置文件,路径为
/etc/systemd/system/raspivid-preview.service,写入以下内容:
[Unit] Description=Raspivid HDMI Preview Service After=graphical.target [Service] User=pi # 替换为你的实际用户名 ExecStart=/usr/bin/raspivid -t 0 Restart=on-failure RestartSec=3 [Install] WantedBy=graphical.target
- 执行以下命令启用服务:
sudo systemctl daemon-reload sudo systemctl enable --now raspivid-preview.service
配置完成后开机就会自动启动raspivid输出预览到HDMI接口。
终止方式
- 任意终端(本地/VNC都可)执行
sudo systemctl stop raspivid-preview.service即可终止进程,也可以把这条命令绑定到自定义键盘快捷键、桌面快捷方式,一键触发。 - 也可以直接执行
sudo pkill raspivid快速杀进程,托管的进程不会残留。
方案2:桌面环境自启终端(适合习惯用Ctrl+C终止的场景)
你之前用x-terminal-emulator启动失败是因为没有让进程在终端前台持续持有输入焦点,修改启动配置即可解决:
配置步骤
- 进入桌面自启目录:
cd ~/.config/autostart,如果目录不存在就先执行mkdir -p ~/.config/autostart - 新建自启文件
raspivid-preview.desktop,写入以下内容:
[Desktop Entry] Type=Application Name=Raspivid Preview Exec=lxterminal -e 'bash -c "raspivid -t 0; exec bash"' Hidden=false X-GNOME-Autostart-enabled=true
配置完成后开机进入桌面会自动弹出终端运行raspivid,进程在终端前台运行。
终止方式
不管是本地接键鼠还是VNC远程连接,直接点击激活该终端,按Ctrl+C即可终止进程,也可以直接关闭终端窗口,进程会同步退出。
后续物理按键适配说明
两种方案都可以直接适配后续的物理电源按键需求,只需要在按键触发的执行逻辑里加入对应终止命令即可,不需要修改现有配置。
内容的提问来源于stack exchange,提问作者pjeigh
相关产品推荐
相关产品推荐

