小编Baa*_*arn的帖子

我怎样才能让用户将一个过程优先考虑为负面的好感?

我希望用户在系统上运行具有负的 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:选项将是一个很大的安全问题。

process limit not-root-user nice

14
推荐指数
1
解决办法
5551
查看次数

如何检查 HDMI 上的声音不起作用的原因

我在我的系统上安装了 Gentoo clean,除了我的 /home,但我删除了所有可能对声音产生影响的隐藏文件夹(.mplayer .pulse* .config .esd_auth 等等)并且使用新用户时adduser mistertest -m -G audio,video,users结果是一样的,没有当我在 mplayer 中播放文件时发出声音。

它是一个 Z68 芯片组,我在我的 CPU 中使用 Intel IGP H2000,所以这不应该是我主板上的 spdif 连接器的问题,我想我已经在内核中安装了所有正确的模块。我没有额外的硬件来检查我的声音是否正常工作(没有耳机或外部扬声器),但我想问题要么是配置不当,要么是内部 spdif(如果有的话)。

dronemother ~ # lsmod | grep snd
snd_hda_codec_hdmi     22705  1
snd_hda_codec_realtek   190506  1
snd_hda_intel          21727  3
snd_hda_codec          63422  3 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel
snd_hwdep               5726  1 snd_hda_codec
snd_pcm                69969  3 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
snd_timer              17697  1 snd_pcm
snd                    53814  13 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_    timer
soundcore               5009  1 snd
snd_page_alloc          6641  2 snd_hda_intel,snd_pcm

dronemother ~ # lspci -v
# cut other …
Run Code Online (Sandbox Code Playgroud)

gentoo alsa audio

8
推荐指数
1
解决办法
1万
查看次数

&& 和 ; 和有什么区别?何时将睡眠分叉到后台?

我刚刚问了一个关于将进程分叉到后台睡眠的问题
我自己想出的符号是这样的:

sleep 10 && echo "hello world" &
Run Code Online (Sandbox Code Playgroud)

这个对不同问题的回答使用了不同的格式。

( sleep 10 ; echo "hello world" ) &
Run Code Online (Sandbox Code Playgroud)

我知道&&只有在第一个进程返回 true 时才允许第二个进程启动。睡眠会失败吗?是否存在我应该更喜欢其中一种的情况?

shell sleep background-process

8
推荐指数
2
解决办法
2335
查看次数

根据需要通过 VPN 重定向流量

我的问题真的很简单,但听起来很复杂,但我对此的经验从零到零。

我已经使用 gentoo 设置了一个盒子,它有自己的半静态 WAN-IP 并充当我的 LAN 的路由器。我可以访问网络上其他地方的路由器,该路由器具有动态 IP 并已注册到 dyndns。我的计划是将特定流量从我的 gentoo-box 重定向到路由器以利用隧道和动态 IP。

我的想法是在我的 gentoo-box 上安装一个代理,它默认使用 VPN 连接到路由器。应该允许 LAN 上的每台计算机和 WAN 上的特定计算机(有权访问代理)使用此代理,但不应强制流量通过路由器。这排除了只使用 iptables 的想法。

示例:我想通过 VPN 重定向 Firefox 流量,而不是 Opera 流量。我将 Firefox 设置为使用本地代理,它获取远程路由器的动态 IP,Opera 仍然使用我的半静态 IP 浏览。

这可能吗?要使用哪个软件?任何进一步的想法?

btw: 路由器支持 PPTP、IPSec 和 L2TP

编辑:如果您对标题有更好的想法,请编辑或提出建议,我不知道如何称呼我的问题:(

routing gentoo proxy vpn

6
推荐指数
1
解决办法
2658
查看次数

Grub2 RAID /启动

我在我的 HomeServer 上使用 Gentoo。我的硬盘是使用 mdadm 镜像的 raid1。

我的问题是如何正确引导 /boot 分区?

/dev/md1 consists of /dev/sdc2 & /dev/sdd2 mounted on /boot
Run Code Online (Sandbox Code Playgroud)

在我grub.cfg的 uuid 中,/dev/md1但在启动时阵列当然还没有准备好。

最简单的方法是取消突袭 /boot 分区,但这不是我想要做的。

那么,我如何找出raid成员的UUID?ls -l /dev/disk/by-uuid只显示 .uuid 的/dev/md1. 当我解开磁盘时,我无法挂载它们以获取它们的 UUIDmount: unknown filesystem type 'linux_raid_member'

那么我怎样才能让 Grub2 引导这些磁盘,它是否能够在它们进入突袭之前确定内容?(它们实际上是 ext2)。

我应该补充一点,我使用 gpt 分区表,因此我/dev/sdc1 and /dev/sdd1在两个驱动器上都有一个小分区来托管 bios_grub 分区。那些不是被突袭的自动取款机。

正如吉尔斯回答下面的评论中指出的那样,我的问题仍然存在。Grub 找不到设备,告诉我

error: no such device: 9f81a-(device uuid)-5580.
entering rescue mode...
grub rescue> 
Run Code Online (Sandbox Code Playgroud)

后来我加了几行

insmod part_msdos
insmod part_gpt
insmod raid
insmod mdraid …
Run Code Online (Sandbox Code Playgroud)

boot software-raid gentoo mdadm grub2

4
推荐指数
1
解决办法
1万
查看次数