Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有Linux服务吗_Java_Linux - Fatal编程技术网

Java 有Linux服务吗

Java 有Linux服务吗,java,linux,Java,Linux,我正在用java为嵌入式linux平台编写一个程序。我需要的一个操作系统功能必须以root用户身份运行才能访问。我使用的平台是BeagleBone Black,我想使用内存映射控制Gpio引脚。我可以访问内存映射,可以以非常快的速度打开和关闭引脚。问题是,我不希望我的程序必须以超级用户的身份运行,至少以这种方式实现它似乎是不对的 linux中是否有一种标准技术可以作为root用户运行并允许用户程序调用它 我知道一定有,我只是不知道是什么。任何帮助都将不胜感激。您要做的是放弃特权。这不需要让任何进

我正在用java为嵌入式linux平台编写一个程序。我需要的一个操作系统功能必须以root用户身份运行才能访问。我使用的平台是BeagleBone Black,我想使用内存映射控制Gpio引脚。我可以访问内存映射,可以以非常快的速度打开和关闭引脚。问题是,我不希望我的程序必须以超级用户的身份运行,至少以这种方式实现它似乎是不对的

linux中是否有一种标准技术可以作为root用户运行并允许用户程序调用它

我知道一定有,我只是不知道是什么。任何帮助都将不胜感激。

您要做的是放弃特权。这不需要让任何进程在持续时间内以root用户身份运行,而是允许一个进程以root用户身份启动,打开资源,然后更改为另一个非特权用户。您仍然需要以root用户身份启动程序,这可以通过setuid脚本完成,这样您就不需要用户已经是root用户才能运行它。(这是通过其他程序完成的,如
sudo


您可以以root用户身份打开文件,然后将程序的uid更改为非特权用户(可能是启动程序的用户)。查看如何使用JNI在Java中删除权限,以及有关一般删除权限的健壮方法的更多信息。

我认为您必须了解内核模块。您的外部问题是什么?使用内存映射似乎是无缘无故地让事情变得更难的一种方式。我的程序是用java编写的。我可以使用文件读写来切换管脚,但速度非常慢。如果没有更好的方法,我将使用文件io,这似乎有局限性。这个问题的哪一部分需要以root用户身份运行进程?我看不到任何。访问内存映射gpio引脚。