Articles of Linux操作系统

POSIX API调用列出进程中运行的所有pthread

我在POSIX / Linux环境中有一个multithreading应用程序 – 我无法控制创buildpthread的代码。 在某些时候,进程(pthreads的所有者)接收到一个信号。 该信号的处理程序应该中止,取消或停止所有的pthread,并logging运行的pthread数量。 我的问题是,我无法find如何列出正在运行的所有pthread。

如何使Python脚本作为服务运行?

我想在CENTOS服务器上运行一个python脚本: #!/usr/bin/env python import socket try: import thread except ImportError: import _thread as thread #Py3K changed it. class Polserv(object): def __init__(self): self.numthreads = 0 self.tidcount = 0 self.port = 843 self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.sock.bind(('100.100.100.100', self.port)) self.sock.listen(5) def run(self): while True: thread.start_new_thread(self.handle, self.sock.accept()) def handle(self,conn,addr): self.numthreads += 1 self.tidcount += 1 tid=self.tidcount […]

使用curl发送电子邮件

我如何使用curl命令行程序从Gmail帐户发送电子邮件? 我已经尝试了以下内容: curl -n –ssl-reqd –mail-from "<sender@gmail.com>" –mail-rcpt "<receiver@server.tld>" –url smtps://smtp.gmail.com:465 -T file.txt 而file.txt是电子邮件的内容,但是,当我运行这个命令,我得到以下错误: curl: (67) Access denied: 530 是否可以从个人服务器托pipe的帐户发送电子邮件,仍然使用curl? 这是否使authentication过程更容易?

从外部主机/ IP访问一个MySQL数据库? (即:mysql工作台)

我有一个MySQL服务器上运行的xxxx,并可以访问它内部没有问题(当然)。 但是,当试图连接外部,即使用mysql工作台,甚至从外部服务器,我得到错误信息“主机'bla.bla.bla'不允许连接到这个MySQL服务器”。 我已经做好了: GRANT ALL PRIVILEGES ON *.* TO mysql@xxxx IDENTIFIED BY "somepass"; 我在iptables中打开了3306端口。 是否还有另一个基本的安全问题,我失踪了?

如何使用C ++在Windows和Linux中清除控制台

我需要一个跨平台的解决scheme来清除Linux和Windows中用C ++编写的控制台。 有这个function吗? 另外请注意,我不希望最终用户程序员不得不更改我的程序中的任何代码,以使其在Windows和Linux中清除(例如,如果必须在两个函数之间进行select,则必须做出决定在运行时或在编译时自动)。

PHP因素30从Linux到Windows的性能差异

我们的团队正在开发WordPress插件,并在几台独立的服务器上提供托pipe实例。 我们的WordPress安装是由Gitpipe理的,所有的服务器都有相同的源代码和WordPress安装程序,只有数据库中的域名和实际数据有所不同。 对于每个安装,MySql运行在同一个主机上。 WordPress在每台服务器上都是独占运行的。 但是,在Windows Server 2008 RC2上部署此设置之后,我们注意到与其他服务器相比,性能显着不同:页面生成时间从平均值上升。 用PHP生成的页面为400ms到4000-5000ms。 对于仅由Apache提供的静态资源,速度与linux上大致相同。 所以我们采取了一些措施来缩小这个问题的范围: 确保没有antivir软件运行或其他Windows域的东西干扰 收集configuration文件数据以在脚本执行期间识别计时器 testing不同的服务器和硬件设置 仔细检查Apache和PHPconfiguration是否有明显的configuration错误 经过一些分析后,我们很快注意到正则expression式的评估在我们的Windows机器上是非常慢的。 评估10.000正则expression式( preg_match )在Linux上需要大约90ms,在Windows上需要大约3000ms。 以下提供了分析,系统testing和configuration细节。 我们不想优化这个脚本(我们知道该怎么做)。 我们希望让脚本在Linux上运行的速度与在Linux上的运行速度大致相同 (对于opcache / …给出相同的设置)。 也不需要优化脚本的内存占用。 更新:一段时间后,系统似乎耗尽内存,触发内存exception和随机分配。 请参阅下面的更多细节。 重新启动Apache / PHP现在解决了这个问题。 跟踪_get_browser是: File (called from) require wp-blog-header.php (index.php:17) wp (wp-blog-header.php:14) WP->main (functions.php:808) php::do_action_ref_array (class-wp.php:616) php::call_user_func_array (wp-includes/plugin:507) wp_slimstat::slimtrack (php::internal (507)) wp_slimstat::_get_browser (wp-slimstat.php:385) 更新2 :由于某些原因,我不记得我们回到激活PHP作为我们的服务器上的Apache模块(相同的性能不佳)。 但今天他们跑得非常快(〜1秒/请求)。 添加Opcache带来这个下降到~400ms […]

跨平台的Windows脚本,Linux,MacOS X

我正在寻找windows,Linux,MacOS X的跨平台脚​​本(语言)。我厌倦了.bat / bash。 我想做一些事情,例如,locking工作站在自动login(我有这个在X-Window中,但解决scheme是非常丑陋的;现在,我想在MS Windows上,而不是那么丑陋:-)) 。 一般来说:自动化任务。 或者,我会更好的Windows脚本宿主? 也想到PowerShell,但这似乎是Windows – 只为我的口味。 像Python,Ruby这样的语言(Java?)能够与WSH交互(合理吗?)? 还有像DBUS,DCOM等的东西可以想象成图片的一部分。 目前我使用Java,.bat,bash,Ruby,Scala的混合体; 一些Excel的VBA。 有时变得相当丑陋。 我希望有一个跨平台的通用解决scheme,使用/使用原生的部分接近操作系统特定的。 就像Ruby驱动一些Windows特定的东西(只是一个猜测)。 你用什么? TIA

这个字符有什么区别?

可能重复: \ r和\ n有什么区别? 我真的很想知道\n , \r , \t , chr(13) ,它们在Web应用程序中的使用方式,操作系统等等之间的区别。 例如,你可以确认windows使用\n\r作为换行符,而linux使用\n正确的? 知道这些事情会很有趣。 谢谢

在VS2010中编译失败的C ++程序在Linux中正常工作

我的C ++项目在Linux上构build和运行良好。 现在我正试图在VS2010中编译它。 我从cmath库中看到很多错误,如下所示。 Error 1 error C2061: syntax error : identifier 'acosf' c:\program files\microsoft visual studio 10.0\vc\include\cmath 19 1 MyPROJ 此外,我得到许多文件操作相关的编译错误,如: Error 1 error C3861: 'lseek': identifier not found g:\project\file.cc 274 1 MyPROJ Error 2 error C3861: 'write': identifier not found g:\project\file.cc 275 1 MyPROJ 如何消除这些错误。

有什么办法可以确保浮点运算结果在linux和windows中都是一样的

我的程序运行在Linux和Windows中,我必须确保浮点运算在不同的操作系统中得到相同的结果。 这里是代码: for (int i = 0; i < 100000; ++i) { float d_value = 10.0f / float(i); float p_value = 0.01f * float(i) + 100.0f; } 我使用“ g ++ -m32 -c -static -g -O0 -ffloat-store ”在linux中构build代码。 我使用“/ fp:precise / O2”在vs2005的窗口中构build代码。 当我printf的“d_value”和“p_value”,“d_value”都在Linux和Windows相同。 但是“p_value”有时是不同的。 例如,打印hex格式的“p_value”: windows: 42d5d1eb linux: 42d5d1ec 为什么要这样做呢? 我的g ++版本是 Configured with: ../src/configure -v […]