Questions tagged «linux»

这些问题通常与Linux有关-并非特定于特定发行版。如果问题恰好在Linux环境中,请在问题正文中指定Linux发行版,但不要使用/ linux标记。

2
/ proc / <pid> / exe符号链接与普通符号链接有何不同?
如果我启动一个进程,然后删除它的二进制文件,我仍然可以从中恢复它/proc/&lt;pid&gt;/exe: $ cp `which sleep` . $ ./sleep 10m &amp; [1] 13728 $ rm sleep $ readlink /proc/13728/exe /tmp/sleep (deleted) $ cp /proc/13728/exe ./sleep-copy $ diff sleep-copy `which sleep` &amp;&amp; echo not different not different $ stat /proc/13728/exe File: ‘/proc/13728/exe’ -&gt; ‘/tmp/sleep (deleted)’ Size: 0 Blocks: 0 IO Block: 1024 …
23 linux  symlink  proc 

3
是否可以运行纯GNU?
在GNU Project网页上,有一个名为“ 所有GNU软件包 ” 的小节,其中列出了GNU项目中的各种软件。 是否有仅使用这些软件包的GNU发行版,即仅在GNU软件包上运行的“纯” GNU操作系统? 我不是特别是否这将是一个有兴趣实用的操作系统,只是如果它是理论上可以运行GNU赫德与纯粹的GNU软件。如果不是,则仍必须实施哪种软件来实现该目标(即缺少什么)? 如果GNU Hurd是限制因素,那么与内核例外相比,使用Linux内核是否可以使用纯GNU OS?
23 linux  gnu  hurd 

1
rootwait / rootdelay的意义是什么?
rootwait和rootdelay用于无法立即使用文件系统的情况,例如,异步检测到或通过USB挂载的文件系统。事实是,基于rootbootarg 应该很明显,那么为什么内核不能自动意识到它需要等待文件系统出现呢?是否有一些技术约束阻止实现这种自动化?
23 linux  boot 

3
如何更改Linux控制台的光标形状,颜色和闪烁频率?
我知道我可以使用更改Linux控制台的一些基本设置,例如字体dpkg-reconfigure console-setup。 但是我想更改诸如眨眼,颜色和形状之类的东西(我希望我的光标始终是一个块)。我见过人们做到这一点。我只是从来没有机会问那些人怎么做。 我不是说终端仿真器窗口,而是Linux文本控制台,可以通过Ctrl+ Alt+F-key 目前,我正在使用Linux Mint,这是Debian的衍生版本。我也想知道如何在Fedora中做到这一点。 编辑:我可能正在做某事 我从该网站中学到了如何进行所需的更改。但是我还没有完成。 我现在已经准备好使用echo -e "\e[?16;0;200c"了,但是我遇到了一个问题:当运行诸如vim或的应用程序irssi或附加屏幕会话时,光标会恢复为闪烁的灰色下划线。 当然,它仅在这一功能上起作用,tty所有其他文本控制台均不受影响。 那么,如何才能使这些更改永久生效?如何将它们填充到其他控制台?
23 linux  console  cursor 


6
切换Fn键状态
我在Lenovo Thinkcentre Edge上遇到此问题。它的键盘具有Fn按键,该按键在我的Ubuntu(带有Fluxbox)中起作用,就好像它始终处于“活动/按下”状态。 我不能使用标准F1- F12除非我按住此键愚蠢的钥匙。您知道,我是一名程序员,这真的让我很痛苦。 所以我决定用xev和重新映射功能键xmodmap 我重新映射F1- F3到此为止一切都很好,但是F4做了某种窗口最小化。当我运行xev并点击时F4,我不会从程序中得到包含键码和内容的回复,而是将窗口最小化,而当我再次最大化窗口时,键没有响应。 重要信息:Fn无法在BIOS中禁用按键功能。 所以问题是:您是否有解决我的奥秘的想法? 编辑: # content of .fluxbox/keys # click on the desktop to get menus OnDesktop Mouse1 :HideMenus OnDesktop Mouse2 :WorkspaceMenu OnDesktop Mouse3 :RootMenu # scroll on the desktop to change workspaces OnDesktop Mouse4 :PrevWorkspace OnDesktop Mouse5 :NextWorkspace # scroll on the …

2
您如何获得任何版本的Linux来查看2018年的MacBook Pro SSD?
我尝试 用Ubuntu 18.04.1和Xubuntu 18.04 nvme_load=yes 代替 quiet ---。 df -h仅导致系统生成的安装和安装介质。包括Debian的固件映像在内的每周直播也无法发现ssd。 我在SSD上找到了更多信息。我在OS X High Sierra的系统概述中找到了此信息。 Apple SSD Controller: APPLE SSD AP1024M: Capacity: 1 TB (1,000,555,581,440 bytes) TRIM Support: Yes Model: APPLE SSD AP1024M Revision: 177.77.7 Serial Number: C02829600M9JPD216 Link Width: x4 Link Speed: 8.0 GT/s Detachable Drive: No BSD Name: disk0 …
23 linux  macintosh  ssd 


2
OOM杀手无法正常工作,导致操作系统死机
多年来,我操作系统的OOM杀手er无法正常工作,并导致系统死机。 当内存使用率很高时,整个系统趋于“冻结”(实际上:变得非常缓慢)数小时甚至数天,而不是终止进程以释放内存。 我所记录的最长期限是辞职以进行重置之前的7天。 当即将达到OOM时,iowait很高(〜70%),然后变得不可测量。 工具:iotop已经表明,每个程序都从我的硬盘驱动器中以非常高的吞吐量(每数十MB /秒)读取数据。 这些程序正在读什么? -目录层次结构? -可执行代码本身? 我现在不完全是。 [编辑]在撰写此消息时(2017年),我使用的是最新的ArchLinux(4.9.27-1-lts),但几年前已经遇到了这个问题。 我在各种Linux发行版和不同的硬件配置中都遇到了相同的问题。 当前(2019年),我正在使用最新的Debian 9.6(4.9.0),我有16 GB的物理内存,安装了我的操作系统的SSD,没有任何交换分区。 由于我拥有的内存数量很大,因此我不想启用交换分区,因为这只会延迟问题的解决。 同样,使用SSD频繁交换可能会降低磁盘的使用寿命。 顺便说一句,无论是否有交换分区,我都已经尝试过,事实证明,这样做只会延迟问题的解决,而不能解决问题。 对我来说,问题是由于Linux从缓存中删除了必要的数据而导致的,这导致系统死机,因为它每次都必须从硬盘读取所有内容。 我什至不知道Linux是否不会删除正在运行的程序的可执行代码页,这将解释为什么通常不读取大量数据的程序在这种情况下会表现出这种方式。 我已经尝试了几种方法来解决此问题。 一种是设置/proc/sys/vm/min_free_kbytes为1000000(1 GB)。 因为这1 GB应该保持可用,所以我认为Linux将保留此内存以缓存重要数据。 但这没有用。 另外,我想补充一点,即使这可能听起来在理论上很不错,限制了虚拟内存到物理内存的大小尺寸是有用的,通过定义/proc/sys/vm/overcommit_memory到2不端正在我的处境技术上是可行的,因为那种应用由于某些原因,我使用的虚拟内存需要比有效使用的虚拟内存更多。 根据该文件/proc/meminfo,该Commited_AS值通常高于我的系统上物理内存的两倍(16 GB,Commited_AS通常大于32 GB)。 我在/proc/sys/vm/overcommit_memory默认值:上遇到了这个问题0,并且有一段时间我将其定义为:1,因为我更喜欢由OOM杀手杀死的程序,而不是行为不当,因为它们不检查mallocwhen的返回值。分配被拒绝。 当我在IRC上讨论此问题时,我遇到了其他Linux用户,他们也遇到了同样的问题,因此我想很多用户对此感到担忧。 对我来说,这是不可接受的,因为即使Windows可以更好地处理高内存使用情况。 如果您需要更多信息,请提出建议。 文档: https : //en.wikipedia.org/wiki/Thrashing_%28computer_science%29 https://en.wikipedia.org/wiki/Memory_overcommitment https://www.kernel.org/doc/Documentation/sysctl/vm。 txt https://www.kernel.org/doc/Documentation/vm/overcommit-accounting https://lwn.net/Articles/317814/ 他们谈论它: 为什么linux out-of-memory(OOM)杀手不自动运行,而是在sysrq-key上运行? 为什么OOM杀手有时无法杀死资源猪? 预加载OOM杀手 是否可以在强制交换时触发OOM杀手? 如何避免在OOM附近出现高延迟? …

3
traceroute仅给出星星+如何修复
当我做: $ traceroute 8.8.8.8 即使在ping到google.com(8.8.8.8)似乎可以正常工作,我仍在输出中仅显示星星。 为了解决此问题,我需要在文件/ conf中修复什么? 我需要检查什么? ping命令输出 $ ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=46 time=73.4 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=46 time=69.6 ms traceroute命令输出 $ traceroute 8.8.8.8 traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets 1 …

3
如何更改文件的“更改”日期?
如何更改“更改”日期? $ touch -t 9901010000 test;stat test File: `test' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fe01h/65025d Inode: 11279017 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ x) Gid: ( 1000/ x) Access: 1999-01-01 00:00:00.000000000 +0100 Modify: 1999-01-01 00:00:00.000000000 +0100 **Change: 2012-04-08 19:26:56.061614473 +0200** Birth: -

4
没有帧缓冲设备:如何启用它?
这个问题是从Server Fault 迁移过来的,因为可以在Unix&Linux Stack Exchange上回答。 迁移 7年前。 我试图在运行Debian Squeeze的无头家庭服务器中使用PCMCIA调谐器卡。现在,由于我很难找到正确的命令行来捕获,使用VLC将视频转码结束流到网络,因此我遇到了很大的麻烦,因此我决定逐步进行操作,然后首先处理本地输出。 那就是问题所在:似乎没有可访问的帧缓冲设备(/ dev / fb0)在附加的屏幕上显示图形!确实,我注意到我在启动时没有Linux企鹅映像(在连接屏幕之前没有注意,但始终处于关闭状态,并且无论如何始终处于开机状态)。 由于我对Linux图形不是很熟悉,所以我想了解一下: 这与我的特定硬件有关(见下文)吗?还是特定于Debian Squeeze /内核版本/ ...? 我需要手动安装/加载一些驱动程序吗? 现在一些基本信息: 该计算机没有专用的图形卡,但是在主板(技嘉G31M-ES2L)上嵌入了嵌入式图形芯片组(英特尔G31 Express)。 我不想安装功能齐全的X服务器,只需安装用于此特定测试的帧缓冲设备 关于这个问题有什么想法/意见吗?

5
在Linux上使用O_DIRECT
如果这个问题太面向程序员,请告诉我。我想知道是否有人熟悉Linux 2.6上的open()系统调用的O_DIRECT标志?Linus贬低了它的使用,但是高性能文件写入似乎表明了它的使用。我想知道任何现实世界的经验和建议。 更多信息:我正在使用的应用程序确实维护了自己的缓存,并且这样做的速度平均提高了5倍或更多。写入文件时,必须将高速缓存的内容写出到文件系统高速缓存中,这似乎是多余的,并且会影响性​​能。

3
替代“ netstat -s”
netstat -s 打印出很多非常详细的协议统计信息,例如收到的TCP重置消息数或发送的ICMP“回显请求”消息数或由于缺少路由而丢弃的数据包数。 netstat如今,当在Linux 中不推荐使用时,还有其他选择吗? ss -s与提供的统计信息相比,提供的统计信息是肤浅的netstat。
23 linux  netstat  iproute 

3
fork()中的写时复制如何处理多个fork?
根据维基百科(可能是错误的) 发出fork()系统调用时,将创建与父进程对应的所有页面的副本,并由OS加载到子进程的单独内存位置。但这在某些情况下是不需要的。请考虑以下情况:孩子执行exec系统调用(用于从C程序中执行任何可执行文件)或在以后很快退出fork()。当仅需要子进程来执行父进程的命令时,就不需要复制父进程的页面,因为exec用要执行的命令替换了调用它的进程的地址空间。 在这种情况下,将使用一种称为写时复制(COW)的技术。使用此技术时,发生派生时,不会为子进程复制父进程的页面。而是在子进程和父进程之间共享页面。每当进程(父级或子级)修改页面时,都会为执行修改的那个进程(父级或子级)单独制作该页面的单独副本。然后,此过程将使用新复制的页面,而不是将来所有引用中的共享页面。另一个过程(未修改共享页面的过程)继续使用页面的原始副本(现在不再共享)。此技术称为写时复制,因为在某些进程向页面写入内容时会对其进行复制。 似乎当任何一个进程试图将其写入页面时,都会分配该页面的新副本并将其分配给产生页面错误的进程。之后原始页面将被标记为可写。 我的问题是:如果fork()在任何进程尝试写入共享页面之前多次调用gets ,会发生什么?
23 linux  c  fork 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.