CentOS 5.9
如果我运行kill -3 <java process pid>实际会发生什么?根据这篇红帽文章,我知道生成了 Java 线程转储,但进程是否终止?它似乎不是基于我的测试:
[root@foobox ~]# kill -3 14559
[root@foobox ~]# service foo status
foo (pid 14559) is running...
Run Code Online (Sandbox Code Playgroud)
换句话说:我可以通过这种方式收集线程转储而不影响服务吗?
我正在尝试为应用程序编写服务脚本。所以我可以这样控制它:
./myscript.sh start|stop|status
Run Code Online (Sandbox Code Playgroud)
启动时pid.file创建进程 ID,并基于它我可以检查状态并停止进程。在停止命令中我删除了pid.file- 没关系。
但是,如果应用程序以异常方式崩溃 - 关闭电源等,则pid.file不会删除,我需要手动删除它。
如何在脚本中正确处理这种异常情况?
当我尝试使用 apt 或 apt-get 安装任何东西(Ubuntu 16.04)时,我得到以下信息:
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
Run Code Online (Sandbox Code Playgroud)
这是以下的输出ps aux | grep apt:
root 23906 0.0 0.0 4504 784 ? Ss Feb20 0:00 /bin/sh /usr/lib/apt/apt.systemd.daily install
root 23912 0.0 0.0 4504 1640 ? S Feb20 0:00 /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held install
Run Code Online (Sandbox Code Playgroud)
但这些是子流程:
root 23906 0.0 0.0 4504 784 ? Ss Feb20 0:00 /bin/sh /usr/lib/apt/apt.systemd.daily install …Run Code Online (Sandbox Code Playgroud) 如果我有PID一个进程的编号(在 UNIX 机器上),我如何知道其关联进程的名称?我需要做什么?
我想知道的是在最后2-3 次重新启动之前分配给进程的PID。
场景是在此特定进程崩溃后,生成一个日志文件,并将进程的 PID 连接到日志文件的名称。我有 5 个名为hs_err_PIDs 的日志文件。我想确认这些 PID 是否已分配给我所关注的进程,因为我对此并不感到困惑。
有什么办法可以做到吗?
我有一个运行 php 的 ubuntu apache/php 服务器,每秒执行 appx 100 次点击,还有一个在后台运行的 PHP cron。
我偶尔会在其中一个 Apache 进程上获得高 CPU 负载,无论流量或 cron 活动如何,它都会保持高负载。在我看来,它陷入了某种循环或某事。
您将在下面找到顶部和跟踪信息。
如何找到错误代码的位置以及导致这种情况的原因?
top - 14:45:24 up 3 days, 3:38, 1 user, load average: 5.10, 5.88, 5.85
Tasks: 163 total, 5 running, 158 sleeping, 0 stopped, 0 zombie
Cpu(s): 47.8%us, 18.5%sy, 0.0%ni, 10.2%id, 0.0%wa, 0.0%hi, 1.8%si, 21.6%st
Mem: 7885012k total, 3858484k used, 4026528k free, 177444k buffers
Swap: 0k total, 0k used, 0k free, 1037868k cached
PID USER PR NI VIRT RES SHR S …Run Code Online (Sandbox Code Playgroud) 大家好,
我有一个问题,我一个人无法解决,所以我需要你的帮助。
当我询问服务状态(systemctl status httpd)时,我已经安装在centos 7 apache上,所以我收到了这样的错误:
我查看了我的 error_log 文件(var/log/httpd/error_log/ 并在这里找到了这个
是的,我已经完成了这项工作并键入了此错误声明,因此我没有在 [] 中写入日期和信息。我希望解决这个问题不是那么重要。
我已经试过了:
reboot systemctl --failed(确认失败)
我没有任何想法。有人可以让我深思。启动后,我尝试安装 icingaweb2,但现在两者都无法正常工作。
非常感谢。米拉
我有一个 RHEL 服务器,上面有几个应用程序,我试图找出其中一个正在调用外部 Web 服务。我有 TCP 转储显示正在进行的调用,并且通过各种工具我能够确定进行这些调用的临时端口。但是,我无法弄清楚如何将该临时端口映射到 pid。我知道我可以使用lsof -i将绑定端口映射到 pid,但这不是我的问题。
有什么方法可以将正在使用的临时端口映射到 pid 或其他指示哪个文件正在调用的指标?
我有一个 react-native 应用程序,我想为开始测试版本编写一个脚本。如果 :8081 端口还活着,我需要击落它。命令:
lsof -i :8081
kill -9 <PID>
Run Code Online (Sandbox Code Playgroud)
lsof 返回此结果:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
chrome 2423 loow 127u IPv4 13749099 0t0 TCP localhost.localdomain:36650->localhost.localdomain:tproxy (ESTABLISHED)
qemu-syst 15091 loow 64u IPv4 13795587 0t0 TCP localhost.localdomain:43518->localhost.localdomain:tproxy (ESTABLISHED)
qemu-syst 15091 loow 66u IPv4 13795588 0t0 TCP localhost.localdomain:43520->localhost.localdomain:tproxy (ESTABLISHED)
qemu-syst 15091 loow 89u IPv4 13777485 0t0 TCP localhost.localdomain:40500->localhost.localdomain:tproxy (ESTABLISHED)
node 16210 loow 16u IPv6 13747716 0t0 TCP *:tproxy (LISTEN)
node 16210 loow 18u IPv6 13751322 0t0 TCP …Run Code Online (Sandbox Code Playgroud) 我必须monit监视一个进程,但它没有意识到它已关闭。我的监控配置是这样的:
check process xxx with pidfile /var/run/xxx.pid
group yyy
start program = "/etc/init.d/xxx start"
stop program = "/etc/init.d/xxx stop"
if failed host 127.0.0.1 port 9999 then restart
if 5 restarts within 5 cycles then timeout
Run Code Online (Sandbox Code Playgroud)
问题是即使我的进程崩溃了,PID 文件仍然存在。所以...PID 存在但本地主机中的端口 9999 应该失败。那么... monit 是否应该不重启这个过程?应该删除pid文件吗?不能做那种OR?
提前致谢,