Questions tagged «process-management»

当主题是关于系统过程管理时,请使用此标记。例如,用于此的命令类似于ps and kill -9 xxxx和服务xyz start | stop | restart和htop。常与内存管理结合使用。

1
如何确保正在运行的进程的专用CPU可用性?
最初,随着操作系统执行管理流程执行的工作,这个问题似乎有点愚蠢/令人困惑。 但是,我想测量有多少进程受CPU / IO的约束,我感觉自己的操作系统正在干扰实验,例如调度的OS进程。 以以下情况为例:我运行了进程A两次,并从工具“时间”(以秒为单位的时间列)中得到以下输出: +---+-------+---------+-----------+---------+ |Run|Process|User Time|System Time|Wall time| +---+-------+---------+-----------+---------+ |1 |A |196.3 |5.12 |148.86 | |2 |A |190.79 |4.93 |475.46 | +---+-------+---------+-----------+---------+ 我们可以看到,尽管用户时间和系统时间相似,但是两者的耗用时间却发生了巨大变化(相差约5分钟)。感觉就像我的环境中的某种东西引起了某种争论。 我想停止所有可能的后台进程/服务,以免在实验期间产生任何噪音,但我认为自己是新手/中级的Unix用户,我不知道如何保证这一点。 我正在使用Linux 4.4.0-45-generic和Ubuntu 14.04 LTS 64位。 我非常感谢您的协助。如果你们需要任何缺少的信息,我会及时编辑我的帖子。 CPU信息 $ grep proc /proc/cpuinfo | wc -l 8 $ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte …

9
确保进程始终在运行
我开始使用Cherokee托管网站。对于外部源(FastCGI等),如果找不到在指定的套接字或端口上运行的进程,则可以选择启动该进程。这很棒,因为这意味着如果PHP或Django站点崩溃了(它们偶尔这样做),它将自动重新启动它。 在使用PHP-FPM的新服务器上,我无法使用切诺基(它具有PHP的错误),因此我已移至NGINX。我真的很喜欢NGINX(因为它的配置样式),但是我遇到了严重的问题,进程崩溃了,再也没有产生。PHP有时会这样做,但是Django站点更成问题。我已经为它们创建了初始化脚本,它们会在启动时启动,但是如果它们在重新启动之间出现故障,这对我没有帮助。 我想我正在寻找FastCGI代理。像切诺基这样的东西,知道哪些进程应该在哪个套接字/端口上运行,并按需重新生成它们。这样的事情存在吗?有什么方法可以将其内置到NGINX中(为了易于配置)?

2
如何查看正在运行的进程?
我使用Ubuntu Server 10.10,我想看看正在运行什么进程。我知道PostgreSQL正在我的机器上运行,但是我无法使用top或ps命令看到它,因此我假设它们没有显示所有正在运行的进程。难道还有其他的命令,它会显示所有正在运行的进程或有任何其他参数,我可以使用top或ps用于本?

4
如何杀死多个进程
找到要杀死的进程的PID的用法: pgrep <process command> 然后,我使用kill命令杀死由...返回的PID pgrep <process command> kill <PID> 可以将这些命令组合为一个命令,这样可以杀死PID或返回的PID pgrep <process command>吗?还是有一种方法可以通过命令名杀死多个进程? 就像是 : kill(pgrep <name of process>)


2
(-)的niceness值是什么意思?
根据手册页和维基百科;nice范围从-20到20。 但是,当我运行以下命令时,我发现某些进程具有非数字值,例如(-)。请参阅左侧第六栏,标题为“ NI”。 (-)的优美表示什么? ps axl F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND 4 0 1 0 20 0 19356 1548 poll_s Ss ? 0:00 /sbin/init 1 0 2 0 20 0 0 0 kthrea S ? 0:00 [kthreadd] 1 0 3 2 -100 …

2
每进程防火墙?
我一直在阅读,但似乎找不到找到创建每个进程防火墙规则的方法。我知道,iptables --uid-owner但这仅适用于传出流量。我考虑过脚本编写netstat,iptables但是这似乎效率很低,因为如果某个进程仅在很小的时间范围内处于活动状态,脚本可能会错过它。基本上,我想在不影响其他进程的情况下对进程的端口和dst实施特定限制。有任何想法吗? 作为参考,selinux可以做到这一点,并且效果很好。设置有点麻烦。

2
UNIX中的进程如何编号?
当我查看进程表(ps -a)中PID的编号时,找不到任何模式,因为PID不是后续编号,有时这些编号之间存在较大的“间隙”。是否因为可能有一些进程在短时间内运行并且保留了一些PID?是否有一定范围,之后进程编号将重置? 我使用的是Mac OS X,但我猜答案通常应该适用于UNIX。


2
杀死一个暂停的进程?
我对以下内容感到有些困惑: % vim tmp zsh: suspended vim tmp % kill %1 % jobs [1] + suspended vim tmp % kill -SIGINT %1 % jobs [1] + suspended vim tmp % kill -INT %1 % jobs [1] + suspended vim tmp 因此,我辞职只是“自己动手做”,想知道以后为什么这样做: % fg [1] - continued vim tmp Vim: Caught …

2
如何检查给定的PID是否正在运行?
我正在编写一个Perl脚本,该脚本分析日志文件以收集PID,然后检查该PID是否正在运行。我正在尝试最好的检查方法。显然,我可以这样做: system("ps $pid > /dev/null") && print "Not running\n"; 但是,如果可能的话,我宁愿避免系统调用。因此,我认为我可以使用/proc文件系统(可移植性不是问题,它将始终在Linux系统上运行)。例如: if(! -d "/proc/$pid"){ print "Not running\n"; } 这样安全吗?我是否可以总是假设如果没有/proc/$pid/目录,则关联的PID未运行?我希望如此,因为AFAIK ps本身/proc还是从信息中获取信息,但是由于这是针对生产代码的,因此我想确定一下。 因此,是否可能存在正在运行的进程没有/proc/PID目录或/proc/PID存在目录且进程未运行的情况?有没有理由更喜欢解析而ps不是检查目录是否存在?



4
Ctrl-C与bash中的两个同时命令
我想在Linux机器上的bash中同时运行两个命令。因此,在我的./execute.shbash脚本中,我输入: command 1 & command 2 echo "done" 但是,当我想停止bash脚本并按Ctrl+时C,仅第二个命令停止。第一个命令保持运行。如何确保完整的bash脚本已停止?或者在任何情况下,如何停止两个命令?因为在这种情况下,无论我多按一次Ctrl+ C,命令都会继续运行,并且我不得不关闭终端。

3
系统生成和进程生成
通常不要在这里发布信息,但是我正在把头发撕掉。我有一个Python脚本,它在启动时会分叉,并负责启动其他一系列进程。该脚本曾经在启动时通过sysvinit启动,但是最近我升级到Debian Jessie,因此对其进行了修改,使其可以通过systemd启动。 不幸的是,我遇到了一个我无法解决的问题。当您直接在用户外壳程序中启动脚本时,它将正确启动其子进程,并且当脚本退出时,子进程将被孤立并继续运行。 通过systemd启动时,如果父进程退出,则子进程也全部退出(嗯,它们在其中启动的Screen消失并显示为Dead ???)。 理想情况下,我需要能够在不终止所有子进程的情况下重新启动父脚本,我是否缺少某些东西? 谢谢! [Unit] Description=Server commander After=network.target [Service] User=serveruser Type=forking PIDFile=/var/Server/Server.pid ExecStart=/var/Server/Server.py ExecStop=/bin/kill -s TERM $MAINPID [Install] WantedBy=multi-user.target 编辑:我可能需要指出Python脚本本质上是其子进程的“控制器”。它根据中央服务器的请求在gnu屏幕中启动和停止服务器。它通常一直在运行,不会生成服务并退出。但是在某些情况下,我希望能够在不终止子进程的情况下重新加载脚本,即使这意味着这些进程被孤立为pid1。实际上,即使Python脚本以如下方式启动进程也没有关系:父进程,如果可能的话。 关于其工作原理的更好解释: Systemd产生/Server.py Server.py分叉并为Systemd写入pid文件 然后,Server.py根据其指示在gnu屏幕中生成服务器进程 Server.py继续运行以执行从服务器请求的任何重新启动 在不使用Systemd的情况下启动时,可以重新启动Server.py,并且启动的gnu屏幕不受影响。使用Systemd启动时,当Server.py关闭时,它们会被杀死,而不是将这些屏幕进程孤立为pid 1。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.