有人可以告诉我如何制作程序来执行此操作:5 分钟后
echo "80" > /sys/class/leds/blue/brightness
Run Code Online (Sandbox Code Playgroud)
我希望这个程序在后台运行(比如rngd
服务)我不能这样做,因为我对 Linux 不太了解。
使用&&
和执行多个命令有什么区别;
?
例子:
echo "Hi\!" && echo "How are you?"
Run Code Online (Sandbox Code Playgroud)
和
echo "Hi\!"; echo "How are you?"
Run Code Online (Sandbox Code Playgroud) 我希望用户在系统上运行具有负的 nice 值的特定进程。我不能简单地将进程分叉到后台,因为这个特定程序是一个 minecraft 服务器,我依靠命令行来控制服务器。
我当前的 bash 脚本如下所示(重要部分):
sleep 10 && \
sudo renice -n $NICENESS $(ps -u $(id -u) -o "%p:%c" | sed -n "s/:java$//p") & \
java -Xmx8G -Xms2G -jar minecraft_server.jar nogui
Run Code Online (Sandbox Code Playgroud)
sleep
只是延迟renice
. renice
它本身ps
用于使用用户自己的 ID 检查 java 进程。在不同的用户下可能有其他 java 生成实例,但 minecraft 服务器在其自己的用户minecraft下运行。
我显然不想每次启动服务器时都输入密码。
来自/etc/sudoers:
minecraft ALL = NOPASSWD: /etc/renice
Run Code Online (Sandbox Code Playgroud)
有没有更优雅的方法来做到这一点?简单地使用nice
不是一个选项,sudo nice bash
结合NOPASSWD:选项将是一个很大的安全问题。