Articles of Linux操作系统

Naglealgorithm的哪个描述是正确的?

以下是Naglealgorithm的两个简单描述。 版本1:等待对方在发送任何部分数据包之前确认先前发送的数据包 版本2:等待对方在发送任何部分分组之前确认先前发送的部分分组 版本1是我从谷歌search的信息,如维基(Nagle的algorithm)或TCP_CORK的理解的结果:超过你想知道 Version 2是我从Naglealgorithm的Linux内核实现中得到的结果 static inline int tcp_nagle_check(const struct tcp_sock *tp, const struct sk_buff *skb, unsigned mss_now, int nonagle) { return (skb->len < mss_now && ((nonagle & TCP_NAGLE_CORK) || (!nonagle && tp->packets_out && tcp_minshall_check(tp)))); } 函数tcp_minshall_check()检查是否所有发送的小包都被确认。 所以我的问题是: 哪一种描述是正确的? 如果两者都是正确的,那么Linux的修改有什么优势呢?

perl dbi:odbc崩溃/使用奇怪的文件

我试图解决一个脚本崩溃在一个服务器( db1 ),而不是在另一个服务器( db2 )上的错误信息很less的问题,尽pipe两种环境在每个方面(除了一个)是相同的,我可以find。 这里是脚本test.pl : use strict; use warnings; use DBI; use Data::Dumper; $ENV{LD_LIBRARY_PATH} = "/var/local/odbc"; $ENV{ODBCHOME} = "/var/local/odbc"; $ENV{ODBCINI} = "/etc/odbc.ini"; my $dbh = DBI->connect( "dbi:ODBC:db", "foo", "bar" ) or die "$DBI::err\n$DBI::errstr\n$DBI::state\n"; $dbh->{RaiseError} = "0"; $dbh->{AutoCommit} = "1"; $dbh->{LongReadLen} = 1024; #$dbh->{TraceLevel} = 10; my $sth = $dbh->prepare( "SELECT * FROM table […]

在Linux中脚本OpenOffice

我需要在Linux上对openoffice进行一些自动化工作(最好在Ruby中): 更新一些值 打开电子表格并重新计算 保存到csv 我该怎么做?

WPSCANruby错误

我是黑社会使用wpscan。 请帮帮我。 请。 它显示stream动错误。 rubywpscan.rb www.security-ray.com [错误]安装缺less的rubygem。 请参阅自述文件或http://code.google.com/p/wpscan/ 根@黑客桌面:/首页/黑客/ pentest / wpscan 我正在使用Ubuntu 11.04。 和wpscan的最后一个版本

在Linux x86_64上使用单例C ++进行多处理

对于下面的问题,我正在寻找一个基于“纯粹的”C / C ++基础的答案,所以我将不胜感激一个非Boost的答案。 谢谢。 我有一个应用程序(例如电信基础设施服务器),它将在Linux环境(一个用于日志logging,一个用于定时器pipe理,一个用于协议消息传递,一个用于消息处理等)时产生几个进程。 它在Gentoo的x86_64环境中。 事情是,我需要一个单身人士可以从所有的进程访问。 这与在Linux上使用say,POSIX线程的multithreading不同,因为所有POSIX线程使用相同的地址空间,但是使用由fork()函数调用生成的多个进程时,情况并非如此。 当使用相同的地址空间时,单例就是所有线程中的相同地址,并且问题得到了平凡的解决(使用众所周知的保护,这对于所有人来说都是旧帽子)。 我喜欢通过fork()生成的多个进程提供给我的保护。 回到我的问题,我觉得正确的方法是在共享内存中创build单例,然后将共享内存的句柄传递给调用任务。 我想象下面的(SomeSingleton.h): #include <unistd.h> #… <usual includes> #include "SomeGiantObject.h" int size = 8192; // Enough to contain the SomeSingleton object int shm_fd = shm_open ("/some_singleton_shm", O_CREAT | O_EXCL | O_RDWR, 0666); ftruncate (shm_fd, size); sharedMemoryLocationForSomeSingleton = mmap (NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, shm_fd, […]

无法得到nohup,open_init_pty和sudo一起工作

我努力将nohup,open_init_pty和sudo结合在一起。 像这样的东西: nohup open_init_pty sudo bash -c "command1;command2" 我的要求有点奇怪: 使用nohup,所以父shell可以干净地退出 open_init_pty实际上是通过PHP的远程SSH,这需要这个 sudo运行特权命令 运行多个命令 – 因此是bash -c行 我试图用不同的组合来缩小问题的范围: # works OK, output in nohup.out nohup sudo bash -c "echo hello" # works OK, hello output to console open_init_pty sudo bash -c "echo hello" # doesn't work nohup open_init_pty sudo bash -c "echo hello" 我究竟做错了什么??

脚本中的bash for-loop不能以非root用户的cron脚本运行

我有一个cron脚本,每晚从系统范围的/ etc / crontab运行,如下所示: 00 01 * * * www-data /root/scripts/image-auto-process.sh 1> /var/data/logs/cron.out 2> /var/data/logs/cron.err 这是一个bash脚本,用rsync备份一些完整扫描的jpeg目录,运行一个php程序来批量处理这些jpeg(预览/缩略图),将它们上传到服务器,并在成功清除前面提到的目录。 除了最后的清理步骤之外,所有的东西都像魅力一样。 但是,如果我作为www-data用户从命令行运行它,它就可以工作。 当它通过cron作为同一个用户运行,它不会。 最后的清理步骤如下所示: echo "remove original scans" for i in `find $SCAN_ORIG_DIR -mindepth 2 -type d -print | grep -v -f $EXCLUDES`; do rm -rvf $i; done echo "job Done…" $SCAN_ORIG_DIR是要search的目录。 $EXCLUDES是一个文件(www-data可读),包含要忽略目录的行(同一个文件用于告诉rsync什么不能备份)。 -mindepth 2用于查找,因为我只想返回也有子目录的$SCAN_ORIG_DIR子目录,如$SCAN_ORIG_DIR/subdir/subsubdir 。 我试着把上面的代码放到自己的脚本中,然后通过命令行和cron运行,只是为了确保脚本中没有先前的代码导致这个问题。 结果在命令行中(不是确切的表示,只是为了说明): remove […]

内部内核结构不能分配错误?

当我运行我写的程序时,我得到以下两个错误消息(它们的多个实例)。 程序很大,所以不能在这里显示。 无论如何,任何想法什么样的编程错误可以导致这些错误? 请注意,我在我的程序中同时使用了mmap和mprotect 。 Internal kernel structures could not be allocated. mprotect: Cannot allocate memory

我可以编写什么程序来冻结/挂起我的程序来testing看门狗定时器?

我可以将哪些C ++代码添加到我的程序中,这将实际上冻结我的程序,以便我可以testing我的看门狗定时器。 而且我怎么会导致我的操作系统也冻结。 谢谢!

gettext的效率:内存中的翻译

我有一个embedded式系统与Flash和一个非常低端的CPU和较less的RAM。 我想知道使用.MO文件gettext语言翻译的效率。 为了进行语言环境语言string获取,每次gettext从flash读取MO文件时,首先将完整的MO二进制文件加载到RAM中,并从那里执行语言环境string提取? 如果MO文件(由于有很多string会很大〜1Mb)总是加载到RAM中,所以会消耗掉我的RAM。