java - 如何在以 root 身份执行的可执行 jar 内以用户模式运行脚本?

标签 java shell raspberry-pi vlc runtime.exec

我想在 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 内以用户模式运行的最简单方法是什么?

最佳答案

我会使用 su -l $LOGIN -c $CMDsudo -u $LOGIN $CMD

关于java - 如何在以 root 身份执行的可执行 jar 内以用户模式运行脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20330793/

相关文章:

java - 要求用户切换到新包的最愉快方式(删除实际应用程序并安装新应用程序)

linux - 如果有尾随字段,为什么 sort 命令排序不同?

java - 什么 unicode 字符最适合在字符串中绘制方波

java - JBoss集群和RHCS有什么区别?

java - 用于通配符请求的 web.xml servlet 映射

linux - 我在旧目录中有一系列文件,我想检查该文件是否存在于新目录中。如果它不存在,我想对其进行一些操作

macos - 使用苹果脚本压缩文件夹

java - 如何在JAVA中将rfid标签数据(askii)转换为字符串

PHP + SQLite 重复插入

java - 从文本文件中读取数据并求和