Tag: linux

运行php脚本作为守护进程

我需要运行一个PHP脚本作为守护进程(等待指示和做的东西)。 cron的工作不会为我做,因为行动需要尽快采取指令到达。 我知道由于内存管理问题,PHP并不是守护进程的最佳选择,但由于各种原因,我必须在这种情况下使用PHP。 我遇到了一个名为Daemon的libslack工具( http://libslack.org/daemon ),它似乎帮助我管理守护进程,但在过去的5年里没有任何更新,所以我不知道你是否知道其他选择适合我的情况。 任何信息将非常感激。

什么是最终的time_t类型定义?

我在Linux中搜索,看到它是typedef typedef __time_t time_t; 但找不到__time_t定义。

如何使用grep跨多行查找模式?

我想按这个顺序查找具有“abc”和“efg”的文件,这两个字符串在该文件中位于不同的行上。 例如:包含以下内容的文件: blah blah.. blah blah.. blah abc blah blah blah.. blah blah.. blah blah.. blah efg blah blah blah blah.. blah blah.. 应该匹配。

如何更改Linux中打开的文件数量限制?

当运行我的应用程序时,我有时会得到关于too many files open的错误。 运行ulimit -a报告限制为1024.如何增加1024以上的限制? 编辑 ulimit -n 2048导致权限错误。

轻松测量经过的时间

我正在尝试使用time()来测量我的程序的各个点。 我不明白的是为什么前后的值是一样的? 我知道这不是描述我的程序的最好方法,我只想看看有什么东西需要。 printf("**MyProgram::before time= %ld\n", time(NULL)); doSomthing(); doSomthingLong(); printf("**MyProgram::after time= %ld\n", time(NULL)); 我努力了: struct timeval diff, startTV, endTV; gettimeofday(&startTV, NULL); doSomething(); doSomethingLong(); gettimeofday(&endTV, NULL); timersub(&endTV, &startTV, &diff); printf("**time taken = %ld %ld\n", diff.tv_sec, diff.tv_usec); 如何读取**time taken = 0 26339 ? 这是否意味着26339纳秒= 26.3毫秒? **time taken = 4 45025 ,这是否意味着4秒和25毫秒?

如何使用sudo将输出重定向到我无权写入的位置?

我已经在我们的RedHat linux的一个开发箱上获得了sudo访问权限,而且我似乎常常需要将输出重定向到我通常没有写权限的位置。 麻烦的是,这个人为的例子不起作用: sudo ls -hal /root/ > /root/test.out 我刚收到回复: -bash: /root/test.out: Permission denied 我怎样才能使这个工作?

sed – 未知选项到's'

我正在尝试使用 sed -i -e "s/.*seb.*/ \"$ftp_login_template\"/" $ftp_dir 但是我得到这个错误: sed: -e expression #1, char 34: unknown option to `s' 我不明白为什么,因为这完美的作品: sed -i -e "s/.*wbspassword.*/ \"wbspassword\": \"$password\",/" $user_conf 任何想法,我做错了什么? 这可能是问题吗? ftp_login_template=\${user}:${password}:24:86::\/var\/lib\/clit.${user}\/downloads:\/bin\/false\"

循环浏览Bash中的文件内容?

如何用Bash迭代文本文件的每一行? 用这个脚本: echo "Start!" for p in (peptides.txt) do echo "${p}" done 我在屏幕上得到这个输出: Start! ./runPep.sh: line 3: syntax error near unexpected token `(' ./runPep.sh: line 3: `for p in (peptides.txt)' (后来我想用$ p做一些更复杂的事情,而不仅仅是输出到屏幕上。) 环境变量SHELL是(来自env): SHELL=/bin/bash /bin/bash –version输出: GNU bash, version 3.1.17(1)-release (x86_64-suse-linux-gnu) Copyright (C) 2005 Free Software Foundation, Inc. cat /proc/version输出: Linux version 2.6.18.2-34-default (geeko@buildhost) (gcc […]

C非阻塞键盘输入

我试图编写一个C程序(在Linux上),循环直到用户按下一个键,但不应该需要按键来继续每个循环。 有一个简单的方法来做到这一点? 我想我可以用select()来做,但是这似乎很多工作。 或者,有没有办法赶上一个ctrl – c按键清理之前,程序关闭,而不是非阻塞io?

由R包调用的Fortran代码仅在Linux上导致段错误崩溃

我正在尝试使用smwrQW R软件包。 我可以让它在Windows机器上工作( example("censReg", "smwrQW") )。 但是,在Linux机器上运行相同的代码会导致我立即发生段错误。 我相信我已经跟踪到以下行的错误。 您应该能够使用Docker和以下命令重现此行为: docker pull rocker/tidyverse docker run -it rocker/tidyverse /bin/bash sudo apt-get install ed Rscript -e "devtools::install_github('USGS-R/smwrBase')" Rscript -e "devtools::install_github('USGS-R/smwrGraphs')" Rscript -e "devtools::install_github('USGS-R/smwrStats')" Rscript -e "devtools::install_github('USGS-R/smwrQW')" Rscript -e "example('censReg', package = 'smwrQW')" Docker版本的gfortran(6.3.0)与RTools版本之间不匹配是否导致问题? 见http://www.thecoatlessprofessor.com/programming/rcpp-rcpparmadillo-and-os-x-mavericks-lgfortran-and-lquadmath-error/#the-solution 我遇到了两个令人费解的怪癖。 首先,如果我在上面链接的那一行之前设置了一个断点( browser() ),那么就没有错误。 其次,Travis的构建似乎已经过去了。