在UNIX上列出并终止作业

在UNIX上列出并终止作业,unix,jobs,kill,solaris-10,at-job,Unix,Jobs,Kill,Solaris 10,At Job,我在Solaris 10上使用at命令创建了一个作业 它正在工作,但我想终止它,但我不知道如何找到作业编号以及如何终止该作业或进程。要删除尚未运行的作业,需要使用atrm命令。您可以使用atq命令在at列表中获取其编号 要终止已开始运行的作业,您需要使用以下命令对其进行grep: ps -eaf | grep <command name> 您应该能够使用ps变量找到您的命令,如: ps -ef ps -fubob # if your job's user ID is bob. 然

我在Solaris 10上使用
at
命令创建了一个作业


它正在工作,但我想终止它,但我不知道如何找到作业编号以及如何终止该作业或进程。

要删除尚未运行的作业,需要使用
atrm
命令。您可以使用
atq
命令在at列表中获取其编号

要终止已开始运行的作业,您需要使用以下命令对其进行grep:

ps -eaf | grep <command name>

您应该能够使用
ps
变量找到您的命令,如:

ps -ef
ps -fubob # if your job's user ID is bob.
然后,一旦找到,使用
kill
终止进程(权限允许)应该是一件简单的事情

如果您正在谈论在
队列中除去
中的作业(尚未运行),您可以使用
atq
列出它们,然后使用
atrm
除去它们。

首先

ps -ef
列出所有进程。记下你想要杀死的那个进程的进程号。然后

kill 1234
是否将1234替换为所需的进程号

或者,如果您完全确定只有一个进程具有特定名称,或者您想杀死多个共享相同名称的进程

killall processname

at-l
列出作业,其返回如下:

age2%> at -l
11      2014-10-21 10:11 a hoppent
10      2014-10-19 13:28 a hoppent
atrm 10
杀死作业10


或者我的系统管理员告诉我的,它首先做
manps
。读一下。然后根据您阅读的内容更新您的问题。S.Lott:
at
作业与进程不同。作业在后台运行,当我运行ps-ef时,我可以看到一些进程运行我的命令,我的bash脚本包含这些命令,它一次运行15秒,当我运行ps-ef时,进程ID总是在变化,我不能用kill process_id终止。如果我重新启动cron服务呢?
killall
在Linux上工作,但请注意,在某些系统上,如Solaris,它实际上终止了所有进程,这可能不是您想要的。哇,Solaris太傻了。你为什么要这么做?就像有一个“rm-rf/”的别名,它不在队列中,它每15秒运行一次作业。如果您有一个进程正在启动其他作业(每15秒一次新的作业),您需要先杀死顶级进程,这样行为就会停止。它仍然使用ps来定位它,kill来终止它。顶级作业也在发生变化,并且每15节获取一个新id,然后找到它的PPID,并查看启动它的进程。最终,你会发现一个长期存在的过程,这就是你应该关注的。我杀死了等待过程的ppid,也就是睡眠15命令,然后全部死亡。
age2%> at -l
11      2014-10-21 10:11 a hoppent
10      2014-10-19 13:28 a hoppent