在linux中,修改的值是否在重新启动后保持不变?

在linux中,修改的值是否在重新启动后保持不变?,linux,linux-kernel,Linux,Linux Kernel,我想修改 /proc/sys/kernel/sched\u rt\u runtime\u us。即使在重新启动后,文件中的更改是否仍会持续? 内核什么时候读取这个更新的值?/proc公开内核内部的数据结构的值,这些值存储在RAM中,因此不,更改不是持久的。如果希望持久存储该值,则必须将修改该值的行添加到init脚本中,以便在引导期间更改该值,或者必须更改内核源代码中的默认值。对于某些proc值(但可能不是这个值),您还可以使用内核命令行选项。否,/proc不是持久的。但是,大多数Linux发行版

我想修改 /proc/sys/kernel/sched\u rt\u runtime\u us。即使在重新启动后,文件中的更改是否仍会持续?
内核什么时候读取这个更新的值?

/proc公开内核内部的数据结构的值,这些值存储在RAM中,因此不,更改不是持久的。如果希望持久存储该值,则必须将修改该值的行添加到init脚本中,以便在引导期间更改该值,或者必须更改内核源代码中的默认值。对于某些proc值(但可能不是这个值),您还可以使用内核命令行选项。

否,
/proc
不是持久的。但是,大多数Linux发行版将从文件(如
/etc/sysctl.conf
)中读取初始值。在这种情况下,您可以在
sysctl.conf
中将此值设置为:

kernel.sched_rt_runtime_us = yourvaluehere

有关详细信息,请参见
mansysctl

另外,如果我修改/proc/sys/kernel/sched\u rt\u runtime\u us,它会立即生效吗?引导加载程序会向内核传递一个命令行,其中包含影响内核运行时行为的某些参数和参数。不过,这在这里并不重要。我必须查看源代码才能100%确定,但我非常确信修改sched_rt_runtime_us会立即生效。它说:“sched_rt_runtime_us”E667:Fsync失败。你知道这里出了什么问题吗?你不应该用编辑器编辑proc文件,而是用shell读写它们(cat读,echo写)。例如,如果您想将sched_rt_runtime_us的值设置为1000,您可以键入以下内容:echo 1000>/proc/sys/kernel/sched_rt_runtime_使用上述Antti的语法,即使使用sudo也不适用于我。相反,我不得不这样写:sudo sysctl-w kernel.sched_rt_runtime_us=1000000(一百万微秒=1秒)。我确实在上面创建了一个文件/etc/sysctl.conf,然后执行$service procps start。在/proc文件中未看到更新的值。它会被刷新吗?