我正在为视频流项目编写一些测试。为了检查我是否正确传输视频,我设置了一个将视频客户端(例如 ffmpeg / vlc)作为守护进程运行的虚拟机。我希望客户端根据命令连接到服务器,显示视频并将视频保存到文件中。
为了做到这一点,我设置了一项服务。这是我的 .service 文件:
[Unit]
Description=Video client for testing
[Service]
Type=simple
WorkingDirectory=/home/user/
ExecStart=client.sh
Restart=always
[Install]
WantedBy=default.target
理想情况下,我希望这是一项用户服务。遗憾的是,我的虚拟机运行的是 CentOS 7无法运行用户服务。作为常规服务,还需要设置 $DISPLAY 和 $XAUTHORITY,但我找不到任何初始化它们的脚本,例如在拱门中所以我认为自己设置它们并不健康。我也不确定如果登录不是自动的,这将如何工作。即使仅保存视频而不打开图形窗口,脚本本身也无法正常工作。启动时效果很好
我一直在考虑从 .profile 运行脚本,但我不太喜欢这个想法,它看起来很尴尬(或者确定这是否是一个好的选择)。另一种选择是通过 SSH 设置脚本(例如,使用帕拉米科- 这需要额外的依赖项/脚本。
我真的很感激一些建议/替代方案/行动方式,因为我不希望它对此进行太多破解。
谢谢,乔伊。
答案1
我建议的模式是不systemd
设置用户自动登录,并使用桌面“自动启动”功能在登录时自动启动 VLC 并开始尝试流式传输内容。
此方法将为您处理 $DISPLAY 和 $XAUTHORITY 的设置。
此模式通常用在 Raspberry Pi kiosk 项目中,用户希望在设备启动后自动启动浏览器并全屏打开 URL。