我想要一个 Jenkins 作业来杀死端口 5000 (bash) 上的所有进程。简单的解决方案
fuser -k 5000/tcp
Run Code Online (Sandbox Code Playgroud)
当我在终端中执行此命令时工作正常,但在 Jenkins(“执行 shell”)上将构建标记为失败。
我也尝试过
kill $(lsof -i -t:5000)
Run Code Online (Sandbox Code Playgroud)
但同样,因为它在常规终端上工作,所以在詹金斯上我得到
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
Build step 'Execute shell' marked build as failure
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决这一问题?
无论我做什么,我似乎都无法在没有立即弹出另一个具有不同 PID 的实例的情况下杀死 Redis ——我检查以确保我正在杀死父进程,而且确实如此。有什么建议么??我已经尝试过重新启动我的机器。我也尝试过这篇 SO post的答案。以下是我运行的杀死和检查命令:
\n\nascourtas@ascourtas-VirtualBox:~$ ps -ef | grep redis\nredis 2573 1 0 12:11 ? 00:00:00 /usr/bin/redis-server \n0.0.0.0:6379\nascourt+ 2991 2501 0 12:25 pts/6 00:00:00 grep --color=auto \nredis\n\nascourtas@ascourtas-VirtualBox:~$ pgrep redis | xargs -i pstree -ps \n{}\nsystemd(1)\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80redis-server(2573)\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80{redis-server}(2575)\n \xe2\x94\x94\xe2\x94\x80{redis-server}(2576)\n\nascourtas@ascourtas-VirtualBox:~$ sudo kill -9 2573\n\nascourtas@ascourtas-VirtualBox:~$ ps -ef | grep redis\nredis 3069 1 0 12:26 ? 00:00:00 /usr/bin/redis-server \n0.0.0.0:6379\nascourt+ 3077 2501 0 12:26 pts/6 00:00:00 grep --color=auto \nredis\nRun Code Online (Sandbox Code Playgroud)\n 考虑以下情况:
fork()从我的程序创建一个子进程1234。execvp("myotherprogram", some_args);myotherprogram预计会无限期地运行,直到收到 SIGTERM(或更高信号),但是,在某些情况下(例如丢失文件),它只会打印错误并中止。
当父进程收到事件时,它想再次杀死子进程,调用:
const int kill_result = kill(1234, SIGTERM);
Run Code Online (Sandbox Code Playgroud)
如果myotherprogram提前退出,会kill(1234, SIGTERM)是安全的,还是操作系统可以回收 PID,并且我可能会杀死一个随机进程?
我在一个变量中捕获PID,我后来杀了它
IF NOT "%SERVICE_PID%" == 0 taskkill /pid %SERVICE_PID% /t /f
Run Code Online (Sandbox Code Playgroud)
虽然每次我在批处理文件中执行此操作时都会使计算机重新启动,因为它会导致某些系统进程死亡
服务pid应该是从cmd启动的用户定义服务
我不明白为什么它一直让我的机器呱呱叫.
当我在命令行上运行"taskkill/pid%SERVICE_PID%/ t/f"时它工作正常!= /
救命!
设置SERVICE_PID
FOR /F "tokens=4 delims= " %%A IN ('sc queryex myservice ^|FIND "PID"')
DO SET SERVICE_PID=%%A
Run Code Online (Sandbox Code Playgroud) 我正在使用Windows中的家长控制程序来控制用户可以访问的网站.我面临的主要问题是"孩子"能够关闭应用程序并去任何他想要的地方!
使应用程序无法或难以关闭的最佳方法是什么?例如,关闭反病毒应用程序非常困难.
任何帮助?
我正试图(根据需要)杀死目前正在运行的所有python进程.
我正在使用此命令:
from subprocess import call
call('pkill python', shell=True)
print 'Killed them all!'
Run Code Online (Sandbox Code Playgroud)
但是,当然 - 我的程序也是一个python程序,所以最终,它在调用'call'后没有到达打印行.
我可以做些什么来避免我的程序同时杀死自己,同时杀死所有其他python进程?
谢谢.
在我的网站上大规模杀死每个PID是否"安全" - 服务dedi(debian squeeze)匹配这个(我知道这是Apache的)?www-data/usr/sbin/apache2 -k start
我会饶有你的细节,但是这些PID是最终未被删除的入侵遗留物,仍然有超过需要的maaaaany正在运行,而且我的dedi有太多"ESTABLISHED"连接,本地ipconntrack,TCP打开连接并且如netstat所示,每秒重置连接数,"已建立:通过防火墙连接",我在Munin看到的几个指标仍然远离图表.
我很想把它们全部大量关闭,但我不知道 - 是否可以"破坏"一些不会重新启动的重要内容,或者是否 - 这只会意味着其他地方的计算机上的浏览器互联网将突然停止接收数据,并需要按F5
谢谢,如果你能告诉我的话!:)
我的程序有事件onClosing- 只是隐藏它.但我还需要实现程序的关闭 - 尝试使用任务栏通知项的上下文菜单.
码:
private void FormMainForm_FormClosing(object sender, FormClosingEventArgs e)
{
//canceling closing form
e.Cancel = true;
//hide form
this.WindowState = FormWindowState.Minimized;
}
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
//hide icon from tray
notifyIcon.Visible = false;
//get current process
Process proc = Process.GetCurrentProcess();
//kill it and close programm
proc.Kill();
}
Run Code Online (Sandbox Code Playgroud)
但也读了一下,kill()终止所有工作并"杀死"进程,认为关闭程序可能不正常 - 某些数据可能被破坏或未被存储
还尝试使用proc.closeMainWindow();和proc.Close()-但PROGRAMM没有影响-关闭所有窗口,但过程仍在运行.
问题:.kill()这是关闭程序的正确方法,还是另一种方法呢?
我有一个bash脚本abcd.sh,我想(/usr/local/bin/wrun 'uptime;ps -elf|grep httpd|wc -l;free -m;mpstat')在5秒后杀死这个命令但在这个脚本中它会在5秒后终止sleep命令.
#!/bin/sh
/usr/local/bin/wrun 'uptime;ps -elf|grep httpd|wc -l;free -m;mpstat' &
sleep 5
kill $! 2>/dev/null && echo "Killed command on time out"
Run Code Online (Sandbox Code Playgroud)