我想在Raspberry Pi上的Java可执行jar中运行以下脚本。
脚本(= stream.sh):
#!/bin/sh
raspivid -fps 25 -w 640 -h 360 -vf -n -o - -t 999999 |cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/cam.sdp,rtcp-mux}' :demux=h264
Java代码:
Runtime.getRuntime().exec("sh stream.sh"));
问题是jar 必须使用sudo运行,而vlc命令不接受sudo。脚本或Java代码都不包含sudo,但是当jar作为sudo执行时,vlc仍然会给出错误“VLC不应该以root身份运行...”。
让脚本在jar内以用户模式运行的最简单方法是什么?
答案 0 :(得分:2)
我会使用su -l $LOGIN -c $CMD
或sudo -u $LOGIN $CMD
。
答案 1 :(得分:2)
Runtime.getRuntime().exec("sudo -u myuser sh stream.sh"));
man sudoers拥有您需要的所有信息。
您需要更改/ etc / sudoers