我不小心“停止”了我的telnet进程。现在我既不能“切换回”它,也不能杀死它(它不会响应kill 92929,其中92929是processid。)

所以,我的问题是,如果您有一个在linux命令行上停止了进程,如何不使用kill -9切换回它或杀死它?

#1 楼

最简单的方法是运行fg使其进入前台:

$ help fg
fg: fg [job_spec]
    Move job to the foreground.

    Place the job identified by JOB_SPEC in the foreground, making it the
    current job.  If JOB_SPEC is not present, the shell's notion of the
    current job is used.

    Exit Status:
    Status of command placed in foreground, or failure if an error occurs.


或者,您可以运行bg使其在后台继续运行:

$ help bg
bg: bg [job_spec ...]
    Move jobs to the background.

    Place the jobs identified by each JOB_SPEC in the background, as if they
    had been started with `&'.  If JOB_SPEC is not present, the shell's notion
    of the current job is used.

    Exit Status:
    Returns success unless job control is not enabled or an error occurs.


如果您刚刚按Ctrl Z,则要带回作业,只需运行不带参数的fg

评论


谢谢!!我想这就是Alt + Tab的等式。你知道我刚做完telnet后发生了什么吗?它说终止了,大概是我之前杀死cmd的b / c。

– bobobobo
2014年1月15日23:00

@bobobobo大概是。无论如何,fg不需要任何参数。如果您刚打过^ Z,请在同一终端上运行fg,它将带回第一份工作。

– terdon♦
2014年1月15日23:03

#2 楼

您可以使用jobs列出挂起的进程。举个例子。从一个过程开始:

$ sleep 3000  


然后暂停该过程:

^Z
[1]+  Stopped                 sleep 3000


您可以列出该过程:

$ jobs
[1]+  Stopped                 sleep 3000


并带回前台:

$ fg %1
sleep 3000


%1对应于列出的[1]使用jobs命令。

#3 楼

通过使用kill命令从命令行向进程发送CONTINUE信号,您应该能够重新启动挂起的进程,因此:

kill -CONT 92929


评论


这将导致它恢复操作,但不会被带到前台。

– bahamat
2014年1月17日下午16:50

@bahamat是的,是的。仍然需要在原始终端内进行fg操作。我喜欢使用-STOP和-CONT gui程序来节省资源,但是无论如何它们都在后台有效运行。

– Geeb
2014年1月17日17:10

如果睡眠,它将终止您不想要的过程。.)

– Timo
18年3月14日在16:46