Articles of Linux操作系统

如果networking坏了,socket发生了什么事?

假设一个简单的networking模型:A已经成功创build了一个到B的TCP连接,并且它们正在像这样彼此通信 A <———-> B 我知道,如果A上的程序死亡(例如核心转储),那么将导致RST数据包到B.因此,任何B的读取尝试都将导致EOF,并且任何B的写入尝试都将导致SIGPIPE。 我对吗? 但是,如果假设networking在A上发生故障(如电缆/路由器故障),那么B的读写尝试会发生什么? 在我的情况下,所有的套接字已被设置为非阻塞。 因此,我不可能检测到networking错误? 顺便说一下,我注意到在socket中有一个选项SO_KEEPALIVE ,可能对我有用http://tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO/ 。 但是我想知道如果将探测间隔设置为2〜3秒(默认为75秒),成本是多less? 看起来间隔configuration是全球性的,那么这会影响机器上的所有sockets吗? 最后的问题…说networking已经崩溃了,任何写入尝试都会导致EPIPE一段时间后。 但是,如果不是试图写入,我把这个套接字放入epoll设备,那么会发生什么呢? epoll_wait是否会返回EPOLLHUP或EPOLLERR事件?

在Linux上部署的Rails项目中,CRLF行是否正常?

我有一个Git仓库(原来是CVS,SVN,现在是Git),它包含一个已经在Linux上部署了一段时间的Rails项目。 一切似乎运行良好。 现在我已经转换为git,我发现存储库中的许多文件都包含CRLF行结束符 。 我希望它能够保持一致( LF ),但不会损失具有CRLF行尾的每个文件的编辑历史logging。 你能想到我不能离开这些文件的原因吗? 我似乎记得shell脚本或cron文件存在问题,或者对CRLF没有响应。 另外,我知道所有关于Git选项core.autocrlf和core.safecrlf ,但是有没有办法让它将所有文本文件从CRLF转换为LF结帐(对于Linux端) …即一个core.autolf选项或类似的东西?

如何修复在Eclipse上的Eclipse 3.5.1加载插件?

我有两个Linux的盒子。 两个Fedora 11 x64。 一方面,我下载了eclipse-java-galileo-SR1-linux-gtk-x86_64.tar.gz。 我将它解压到/opt/eclipse-3.5.1/,并使用Install New Software …项目来安装SVN团队提供者和Polarion SVN连接器。 一切正常。 第二,我拷贝了用于eclipse的tar.gar,然后试图按照相同的步骤。 当我到达SVN团队提供的安装时,eclipse下载并声称安装它并要求重新启动。 我重新启动,没有SVN支持。 软件安装程序知道它在那里,因为我不能不卸载它重新安装它。 所以问题:为什么不是SVN团队支持的插件/function加载? 有没有一个checkbox,我忘了这使插件? 是否有一个命令行选项将强制重新加载磁盘上的所有function? 我试图安装findbugs等其他东西,但我得到了相同的结果。 我在日志文件中没有消息指出exception或类似的东西。

访问被拒绝 – PHP move_uploaded_file – Ubuntu LAMP / var / www

我意识到在我的tmp文件夹或我在/ var / www文件夹中创build的images文件夹上存在某种权限问题。 我知道/ var / www最初有root权限。 我一直在关注一些在线教程,试图解决这个问题,并改变了我的权限,谁知道过去一个多小时左右。 尝试使用PHP / MySQL从HTML表单上载文件时收到此错误: Warning: move_uploaded_file(images/verified-gw.gif): failed to open stream: Permission denied in /var/www/addscore.php on line 40 Warning: move_uploaded_file(): Unable to move '/tmp/phpla4QCP' to 'images/verified-gw.gif' in /var/www/addscore.php on line 40 cannot move uploaded file or something beavis 所以我认为/ var / www / images文件夹的权限是不正确的,或者tmp文件夹的权限是root,而ubuntu的内核不会让php脚本从这个root拥有的文件移动到具有权限的images文件夹我的用户帐户据我所知,并在组中没有人。 我很迷茫,任何帮助,绝对赞赏。 上面你可以看到图片文件夹的权限的图片,我试图将文件从tmp目录移动到。 哦,这里是PHP脚本失败: if […]

在设备驱动程序中使用stdlib.h

我试图写一个设备驱动程序,我需要在驱动程序中使用system()函数。 要使用system()我们需要包含<stdlib.h> ,这个dosnt似乎是从驱动程序中运行的。 它说没有find这样的文件或目录。 是否有替代stdlib.h设备驱动程序? 或system()的替代?

我怎么能grep,而避免“太多的参数”

我试图清理一些垃圾邮件,并遇到了一个问题。 队列中的文件数量太大,以至于我平时的命令无法处理。 这会给我一个关于太多争论的错误。 我通常这样做 grep -i user@domain.com 1US* | awk -F: '{print $1}' | xargs rm 1US *可以是1US [a-zA-Z]之间的任何值。 我唯一能做的就是运行这个可怕的装置。 它的一个文件,1USA,1USA,1USB等,通过整个字母表。 我知道他们必须成为更高效运行的一种方式。 grep -s $SPAMMER /var/mailcleaner/spool/exim_stage1/input/1USa* | awk -F: '{print $1}' | xargs rm grep -s $SPAMMER /var/mailcleaner/spool/exim_stage1/input/1USA* | awk -F: '{print $1}' | xargs rm

自动运行多个compass-sass监视操作

我正在尝试确定指南针(sass)同时观看多个目录的最佳方法。 每个目录代表一个个人客户和他们的网站。 /var/www/customers/domain1.com /var/www/customers/domain2.com /var/www/customers/domain3.com 我已经了解到每个watch命令可能需要单个进程,每当添加/删除/移动文件夹时,自动运行和停止这些命令的最佳做法是什么?

为什么我们不能通过Linux中的system()系统调用来更改目录?

system ("cd .."); 这不会产生任何错误,但也没有任何意义。 为什么?

使用awk或sed从ifconfigparsing数据?

我想parsing从sed的ifconfig输出的一些数据,但我不能够正确地做到这一点。 我想要命令提取我后面的数字。 例如,我有兴趣提取发送的字节: eth1 Link encap:Ethernet HWaddr 00:00:00:09:15:f7 inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::92e2:baff:fe08:35c7/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:75141 errors:0 dropped:0 overruns:0 frame:0 TX packets:78046 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:9040489 (9.0 MB) TX bytes:34806464 (34.8 MB) 如果我使用sed: ifconfig eth1 | sed 's|.*RX bytes:\([0-9]*\).*|\1|g' 我得到这个输出: eth1 Link encap:Ethernet […]

无法在Visual VM中查看Visual GC

我在我的本地Windows机器上使用Java VisualVM来监视我的远程服务器(Linux)。 除了“ Visual GC ”之外,我能够获得Bisual VM的所有统计数据。 它显示“不支持此JVM”。 我GOOGLE了它,发现这可能是因为jstatd没有运行和连接。 所以执行“ jstatd -J-Djava.security.policy = / tmp / tools.policy ”。 它显示一个ip“ 175.41.139.225 ”。 我不明白为什么它试图连接到这个IP。 这不是我的远程机器,也不是我的本地机器的ip。 [root@shipping_pt mail]# jstatd -J-Djava.security.policy=/tmp/tools.policy Could not contact registry Connection refused to host: 175.41.139.225; nested exception is: java.net.ConnectException: Connection refused java.rmi.ConnectException: Connection refused to host: 175.41.139.225; nested exception is: java.net.ConnectException: Connection refused at […]