首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sysctl vs直接写入/proc/*

sysctl vs直接写入/proc/*
EN

Server Fault用户
提问于 2018-12-26 14:37:58
回答 2查看 1.3K关注 0票数 6

在典型的linux机器上,您可以通过修改位于/proc/*的文件来更改内核配置。

例如,对于特定网络接口(例如,IPv6 )的accept_dad参数,可以修改以下文件:

代码语言:javascript
复制
/proc/sys/net/ipv6/conf/eth0/accept_dad

但是,正如我最近发现的,有一个广泛传播的工具-- sysctl,它具有相同的用途,其工作方式如下:

代码语言:javascript
复制
sysctl -w net.ipv6.conf.eth0.accept_dad=1

我的问题是,我们什么时候应该使用哪一种工具?我的直觉告诉你,如果你知道你在做什么,你应该直接写到文件,但是,如果你想要验证什么,你应该使用sysctl

由于sysctl是我们可以直接控制的东西的另一层,我认为通过使用它,我们将暴露在潜在的bug中,而这些错误是通过直接写入文件来避免的。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2019-08-13 07:50:13

sysctl是一个读取和修改各种内核属性的工具。它可以在许多类似Unix的操作系统中使用,例如,不仅包括Linux,而且还包括OpenBSD和FreeBSD。sysctl通常可以作为shell命令和系统调用使用。

在Linux中,sysctl机制还作为procfs虚拟文件系统的一部分在/proc/sys下公开。

请注意,sysctl syscall 在Linux中不受欢迎.;建议使用/proc/sys (直接或通过sysctl shell命令)。

参考文献:

  • 曼佩奇用于Linux中的sysctl系统调用
  • 曼佩奇用于Linux中的sysctl shell命令
票数 3
EN

Server Fault用户

发布于 2018-12-26 18:15:48

sysctl是与/proc交互的实用工具。总的来说,他们完成了同样的事情。我猜这几年(几十年?)在此之前,调整内核参数的唯一方法是手工编辑/proc中的“文件”,后来,sysctl作为一种更文明的方法来搜索和修改内核参数。

值得注意的是,/proc中的编辑无法在重新启动后存活下来。如果你在做实验,这是很方便的。文件/etc/sysctl.conf是一个存储您希望在引导过程中维护的sysctl更改的地方。如果您真的喜欢编辑文件,那么您可能只想在那里进行更改,并调用sysctl -p来执行更改。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/946665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档