Articles of pid

nginx.conf和nginx.pid用户和权限

我开始看着我的NGINX error.log文件级别:警告…可能是一个愚蠢的想法,并会导致我崩溃我的服务器,因为我找出了任何错误发生,但嘿,我们是书呆子,这就是为什么我们在这里 每当我重新启动服务器时,我都会注意到[警告]和[emerg]popup窗口,显示: [warn] 8041#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1 [emerg] 8041#0: open() "/run/nginx.pid" failed (13: Permission denied) 我的nginx.conf文件的顶部是: user www-data; worker_processes auto; pid /run/nginx.pid; 对我来说,给我看几件事。 我正在用用户:www-data运行NGINX。 允许的工作进程数量将自动调整。 我的PID文件/信息正被存储在/run/nginx.pid中。 这个错误告诉我NGINX没有访问/run/nginx.pid的权限,导致我看到了这个文件的用户权限。 sudo ls -la /run/nginx.pid 揭示: -rw-r–r– 1 root root 5 Jun 18 05:34 […]

find_task_by_pid()的替代方法

我需要访问我的系统调用中给定的PID任务。 显然,函数find_task_by_pid()是在较早版本的Linux内核中为此目的服务的。 它似乎只有functionsearch任务与新的内核(如3.13)可用的pid是find_task_by_vpid()。 对于给定的pid,调用此函数是否会返回与前一个函数相同的任务? (虚拟(本地)PID是什么意思?)如果没有,是否有相当于find_task_by_id()的函数?

与setpgid竞争条件

在为我的OS课程开发一个程序的时候,我发现了一个有趣的例子,涉及到一个看起来像setpgid的竞争条件。 分别编译下面的每个程序。 执行./test 3 (或任意数字> 2)之后, ps jx将显示所有的infy进程已经放在同一个组中。 ./test 2将显示setpgid尝试移动最后一个进程失败的错误。 取消注释“修复我”行将导致./test 2按预期工作。 任何人都可以提供解释或解决scheme? // test.c #include <unistd.h> #include <stdio.h> #include <stdlib.h> char* args[] = { "./infy", NULL }; int main(int argc, char* argv[]) { if (argc != 2) { fprintf(stderr, "Usage: %s [num]\n", argv[0]); return 1; } int num = strtol(argv[1], NULL, 10); if (num […]

如何检查一个进程在Linux中是否是一个系统进程?

我的程序可以build议用户closures一个特定的进程,如果它消耗太多的内存(例如 – Firefox或铬)。 但是,在我的系统(Ubuntu 16.10 GNOME)中,像gnome-shell这样的一些系统特定的进程消耗了太多的内存。 我的客户不知道一个特定的过程是否可以closures。 我如何确定一个进程是否是一个系统进程(如gnome-shell),并避免closures它? 这是我如何获得PID和消耗最大内存的进程的名称: FILE * pipe = popen("ps aux –sort=-%mem | awk 'NR<=2{print $2}'", "r"); if(pipe) { char line[line_buf]; while(fgets(line, sizeof line, pipe) != NULL) { if(sscanf(line, "%d", &_pid) == 1) { _mem->pid = _pid; } } } pclose(pipe); if(_mem->pid != 0) { char command[128], pidname[40]; snprintf(command, sizeof command, […]

错误执行错误(操作系统过程)需要说明

我在笔记本上写下了下面的代码,现在我写在xcode上,这是老师的输出: child reads : 0,1 parent write: 1,2 child reads : 1,2 parent write: 3,5 child reads : 3,5 parent write: 8,13 child reads : 8,13 由于这2个错误,我无法得到输出结果: 1-编程接收信号:“EXC_BAD_ACCESS”。 并标记行a[0] 2 – 警告:通过“等待”的参数1使得整数的指针没有强制转换 代码: #include <stdio.h> #include <sys/ipc.h> #include <sys/shm.h> #include <unistd.h> #include <sys/wait.h> int main (int argc, const char * argv[]) { int shmid ,*a,*b,i; […]

如何可靠地获得扭曲的衍生过程?

我有一个Python程序,使用psutil来运行一些各种扭曲的命令。 扭曲的产卵和守护进程,并写一个foo.pid从中我可以读取PID。 它也设置为在进程终止时清除该pid文件,这意味着生成的进程可能完成得太快而无法读取pid。 如果不能写pid文件的话, twistd会返回一个错误代码,所以我可以假定没有pid文件,也没有扭曲的错误代码意味着这个进程已经成功并很快终止了,但是整个过程看起来如此片面。 更不用说等待pid文件被填充内容,同时也处理了被填充的可能性,但又一次去除了。 有没有更好的办法?

Linux中的进程ID耗尽

如果Linux操作系统用完进程ID,会发生什么情况? 是否会删除较旧的进程以释放空间以适应未来的请求?

可能最后PIDvariables$! 是错的?

如果一个脚本启动一个进程,并立即收集与$! PID $! ,如果在脚本启​​动过程之间和脚本收集PID为$!的时刻系统的某个其他位置启动了一个进程,它是否可能得到错误的PID $! ?

如何获得所有后裔在Linux中的cid的subprocessID

如果我fork和subprocess然后exec和创build更多的subprocess(它们本身可以创build更多的进程),我怎么得到从第一个进程的所有后代进程的pid列表? 有没有更好的方法,然后循环/proc/和检查每个进程的PPid (进程的ID的父)?

如何获得由Symfony启动的过程PID?

我怎样才能得到由Symfony启动的进程的PID? 代码在下面 $process = new \Symfony\Component\Process\Process('vlc'); $process->start(); return $process->getPid(); 返回PID 1488.但是在没有相同PID的系统中没有进程(没有vlc,没有php)。 编辑 提供的代码在app / console(Symfony \ Component \ Console \ Command \ Command)中运行