Articles of 进程

从另一个脚本运行bash脚本而不等待脚本完成执行?

有没有办法执行两个bash脚本没有第一个阻止? 以下不起作用: exec ./script1.sh #this blocks! exec ./script2.sh

在Linux中通过命令行查找进程数

我一直在寻找最好的方法来通过Linux中的命令行find具有相同名称的正在运行的进程的数量。 例如,如果我想find正在运行的bash进程的数量并获得“5”。 目前我有一个脚本,做一个“pidof”,然后做记号string计数。 这工作正常,但我想知道是否有一个更好的方式,可以完全通过命令行完成。 在此先感谢您的帮助。

C中的Fork()函数

下面是Forkfunction的一个例子。 以下也是输出。 我的主要问题是如何处理一个分叉被称为值如何改变。 所以pid1,2和3从0开始,随着分叉的发生而变化。 这是因为每次发生分叉时,值被复制到孩子,具体的价值得到改变,在父母? 基本上如何用叉函数改变值? #include <stdio.h> #include <sys/types.h> #include <unistd.h> int main() { pid_t pid1, pid2, pid3; pid1=0, pid2=0, pid3=0; pid1= fork(); /* A */ if(pid1==0){ pid2=fork(); /* B */ pid3=fork(); /* C */ } else { pid3=fork(); /* D */ if(pid3==0) { pid2=fork(); /* E */ } if((pid1 == 0)&&(pid2 == 0)) […]

如何使程序重新启动? (Linux进程)

我试图让我的程序重新启动,但似乎没有任何工作。 我尝试使用fork() ,但在杀死parent进程后, child被杀死了。 码 void sigup_handler(int signum) { int pid = fork(); if (pid == 0) { execve("prog2", NULL); } else kill(getpid(), SIGTERM); } int main() { puts("Program 2 started."); signal(SIGHUP, sigup_handler); sleep(50); puts("Program 2 terminated."); return 0; }

我怎样才能找出在Linux中运行哪个PHP脚本?

使用FastCGI处理程序运行Linux,Apache,PHP 5.3。 是否有可能找出正在执行的Linux进程的脚本? 我一直在search谷歌,一直没有find有用的东西。

当父进程被“kill -9”杀死时,subprocess是否也会被杀死?

我的一位同事今天早上告诉我,当他用“kill -9”杀死supervisord时, supervisord的subprocess并没有被杀死。 他对此相当肯定,但是我尝试了很多次,没有发现。 所以当一个父进程被“kill -9”杀死的时候,linux会确保它的subprocess也被杀死了吗?

在Linux中的后台进程

我开发了一个Java套接字服务器连接,工作正常。 从terminal启动时,从客户端收听。 但是当我closuresterminal时,它会停止收听。 即使用户从jar文件的启动位置closures了terminal,我也需要继续。 如何在Linux中运行Java服务器套接字应用程序作为后台进程?

一个进程命令在顶部

运行几个python脚本时出现问题。 在命令顶部,它只显示这些脚本的“python”。 如何重命名进程或以其他方式对其进行标记,以便我可以将它们分开排列?

为什么fork()的工作方式

所以,我用fork() ,我知道它是做什么的。 作为初学者,我非常害怕(而且我还是不完全明白)。 您可以在网上findfork()的一般描述,它复制当前进程并分配不同的PID,父PID,并且进程将具有不同的地址空间。 所有这一切都是好的,但是,考虑到这个function描述,初学者会想:“为什么这个function如此重要?为什么我要复制我的过程?”。 所以我想知道,最终我发现你可以通过execve()系列来调用当前进程中的其他进程。 我还不明白的是为什么你要这样做呢? 最合乎逻辑的是有一个你可以调用的函数 create_process("executable_path+name",params…, more params); 这将产生一个新的进程,并开始在main()的开始运行它,并返回新的PID。 令我困扰的是fork / execve解决scheme正在做一些潜在的不必要的工作。 如果我的过程使用大量的内存呢? 内核是否复制我的页面表等等。 我相信它没有真正分配真正的内存,除非我已经触及它。 另外,如果我有线程会发生什么? 在我看来,这太乱了。 几乎所有fork的描述都说它只是复制进程,新进程在fork()调用之后开始运行。 这确实是发生了什么,但为什么会发生这种情况,为什么fork / execve是产生新进程的唯一方法,以及从当前创build新进程的最普通的unix方法是什么? 有没有其他更有效的方法来产生过程?**不需要复制更多的内存。 这个线程谈到了同样的问题,但是我发现它不太令人满意: 谢谢。

在linux中使用top -c命令来过滤基于进程名称列出的进程

top -c 最上面列出了所有的进程,有很好的select,通过使用选项-u筛选进程的用户名,但我想知道是否有任何简单的方法来过滤基于顶部输出的COMMAND列下列出的进程名的进程。 例如,我想要像top -some选项-substring的processname和顶部显示pids只有在其命令名称的子string