相关疑难解决方法(0)

如果“kill -9”不起作用怎么办?

我有一个无法杀死的进程kill -9 <pid>。在这种情况下有什么问题,特别是因为我是该流程的所有者。我认为没有什么可以逃避这个kill选择。

process kill

556
推荐指数
13
解决办法
65万
查看次数

您如何将良性用户踢出您的系统?

我之前在谷歌上搜索过这个并注意到了几种方法,但我猜谷歌并不知道所有。那么你如何将用户踢出你的 Linux 机器呢?另外,您如何才能看到他们首先登录?和相关的......如果用户登录到 X11 DE(不是我只是好奇的要求),你的方法是否有效?

users administration

74
推荐指数
5
解决办法
12万
查看次数

如何杀死父进程为 init 的 &lt;defunct&gt; 进程?

传输间歇性地挂在我的 NAS 上。如果我发送 SIGTERM,它不会从进程列表中消失,并且<defunct>旁边会出现一个标签。如果我发送 SIGKILL,它仍然不会消失并且我无法终止父级,因为父级是init. 我可以摆脱该过程并重新启动传输的唯一方法是重新启动。

我意识到我能做的最好的事情就是尝试修复传输(我已经尝试过),但我是编译的新手,我想确保在我开始搞乱它之前我的种子已经完成。

kill signals process-management init zombie-process

27
推荐指数
2
解决办法
6万
查看次数

如何通过终端软杀死 gui 应用程序?

有没有办法以友好的“请立即退出”方式关闭 GUI 应用程序,而无需对应用程序窗口进行图形访问?

例如,如果 Gnome/X 显示器崩溃为黑色,我想切换到 tty2 并关闭像 firefox 这样的应用程序,让它们保存配置等。最好不要进一步的用户查询。

command-line kill gui signals

24
推荐指数
2
解决办法
2万
查看次数

从终端关闭所有 Nautilus 窗口

如何从终端关闭所有打开的 Nautilus(资源管理器)窗口?

command-line kill nautilus

14
推荐指数
2
解决办法
2万
查看次数

使用 bash 脚本安装 crontab

我创建了一个脚本来在 crontab 上安装两个脚本。

#!/bin/bash

 sudo crontab -l > mycron
 #echo new cron into cron file

 echo "*/05 * * * * bash /mnt/md0/capture/delete_old_pcap.sh" >> mycron #schedule the delete script
 echo "*/12 * * * * bash  /mnt/md0/capture/merge_pcap.sh" >> mycron     #schedule the merge script

#install new cron file
 crontab mycron
rm mycron
Run Code Online (Sandbox Code Playgroud)

脚本运行,并将这两行添加到 crontab。但是如果我再次运行脚本,它会再次添加这些行,因此我将有四行说相同的内容。我希望安装脚本运行时插入到 crontab 的行不会重复。我怎样才能做到这一点

linux bash cron

12
推荐指数
1
解决办法
3万
查看次数

如何获取进程的pid并在shell脚本中对其调用kill -9?

我有一个应用程序服务器,我们通过运行下面的命令开始,只要我们运行下面的命令,它就会启动我的应用程序服务器

/opt/data/bin/test_start_stop.sh start
Run Code Online (Sandbox Code Playgroud)

为了停止我的应用程序服务器,我们这样做 -

/opt/data/bin/test_start_stop.sh stop
Run Code Online (Sandbox Code Playgroud)

因此,只要我的应用程序服务器正在运行,如果我运行ps aux,这就是我得到的 -

user@machineA:/home/user$ ps aux | grep gld_http
user 20426  0.0  0.0   8114   912 pts/4    S+   13:33   0:00 grep gld_http
user 40509  0.1  0.9 3878120 1263552 ?     Sl   Sep22   1:53 /opt/data/bin/gld_http
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试制作一个 shell 脚本,我需要在其中停止我的应用程序服务器,然后我将在停止服务器后检查我的进程是否正在运行,如果我的进程仍在运行,那么我需要执行 kill -9我的应用程序pid。而且我不确定如何在 shell 脚本中获取我的进程的 pid 然后杀死它。

下面是我现在拥有的 shell 脚本,它将关闭我的应用程序服务器,然后检查我的进程是否仍在运行,如果它仍在运行,那么我需要获取进程的 pid 和在那个pid上执行kill -9。

#!/bin/bash

/opt/data/bin/test_start_stop.sh stop

if ps aux | grep -v "grep" | grep "gld_http"
then
    echo "Server is still running"
    # now get the pid …
Run Code Online (Sandbox Code Playgroud)

linux shell bash

9
推荐指数
1
解决办法
8万
查看次数

如何杀死 - 轻轻地?

如果我想尽可能小心和礼貌地终止进程,
我应该在终止命令中使用哪些信号,以什么顺序?

我想给程序任何时间来清理,如果它愿意的话,所以只是发送一个SIGTERM将是苛刻的,我想?

我会最后使用SIGKILL(" -9"),这很清楚。

但是从哪个开始呢?SIGHUP? 哪些信号只是浪费时间?


相关信号供参考,来自

man 7 signal

  Signal     Value     Action   Comment
   ??????????????????????????????????????????????????????????????????????
   SIGHUP        1       Term    Hangup detected on controlling terminal
                                 or death of controlling process
   SIGINT        2       Term    Interrupt from keyboard
   SIGQUIT       3       Core    Quit from keyboard
   SIGKILL       9       Term    Kill signal
   SIGPIPE      13       Term    Broken pipe: write to pipe with no
                                 readers
   SIGTERM      15       Term    Termination signal
Run Code Online (Sandbox Code Playgroud)

process kill zombie-process

7
推荐指数
1
解决办法
7811
查看次数

在运行相同的 Unix 脚本之前终止脚本的先前实例

我想终止属于我将再次运行的 shell 脚本的后台进程。

这意味着在执行 shell 脚本之前,我想删除为同一脚本运行的后台进程。

shell-script background-process

7
推荐指数
2
解决办法
6658
查看次数

为什么“kill -9”会杀死浏览器和服务器?

有时我不得不使用kill -9作为终止我的 rails 服务器的最后手段。不幸的是,我必须经常这样做,以至于我在 bash_profile 中编写了一个辅助函数来完成它。

如果我手动执行 -- ps aux | grep '[r]ails],获取 pid(例如12345),并且kill -9 12345-- 它会杀死服务器并保持浏览器完好无损。但是我的功能也会杀死浏览器,我不想这样做:

function running {
  ps -p $(lsof -i :3000 -t) &> /dev/null
}

function k9 {
  if running
  then
    kill -9 $(lsof -i :3000 -t)
  else
    echo "Rails server is not running"
  fi
}
Run Code Online (Sandbox Code Playgroud)

我已经确认它lsof -i :3000 -t获取的 pid 与我从中获取的 pid 相同ps aux,那么我做错了什么?

bash kill shell-script

3
推荐指数
1
解决办法
1035
查看次数

如何杀死未连接到任何终端的进程

我在 OpenVZ VPS 上,我以非 root 用户身份创建了一个后台进程,然后取消了它,即

user@server:~$node server.js &
user@server:~$disown
Run Code Online (Sandbox Code Playgroud)

我 SSH 退出了 VPS,现在我又回来了,但我似乎无法使用其 PID 终止该进程。Pkill 1292. 它甚至以 root 身份失败。我知道它没有死,因为当我运行top它直到运行。此外,当我运行时,ps -l -p 1292我可以看到该过程一直在运行。

我可以说该进程没有附加到任何终端会话,因为ps命令在 TTY 上显示一个问号,即

截屏

我如何杀死这个进程?

kill top process-management background-process

2
推荐指数
1
解决办法
1598
查看次数

如何将管道的输出重定向到 &gt;/dev/null

我想将整个管道的 STDOUT 和 STDERR 重定向到/dev/null.

考虑到这是我的命令:

sudo lsof -i:22000 -t | xargs kill -9
Run Code Online (Sandbox Code Playgroud)

我知道这是错误的做法:

sudo lsof -i:22000 -t | xargs kill -9 >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

我们如何实现这一点,因为简单地添加>/dev/null 2>&1不会对管道产生任何影响,因为它将被解释为xargs kill -9?

shell pipe io-redirection

2
推荐指数
1
解决办法
465
查看次数

如何在 bash 中使用 awk 和 echo

如果我在 bash 脚本(类似于此脚本)中运行以将内容发送到文件:

sudo ./bar.sh > foo
Run Code Online (Sandbox Code Playgroud)

内容bar.sh:

echo 'for pid in $(ps -ef | grep "smbd" | awk '{print $2}'); do kill -9 $pid &> /dev/null; done'
Run Code Online (Sandbox Code Playgroud)

foo 输出:

for pid in $(ps -ef | grep "smbd" | awk {print }); do kill -9 $pid &> /dev/null; done
Run Code Online (Sandbox Code Playgroud)

$2是迷失在外面。

预期输出:

for pid in $(ps -ef | grep "smbd" | awk '{print $2}'); do kill -9 $pid &> /dev/null; done
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到它?

bash awk echo

0
推荐指数
1
解决办法
1万
查看次数