2011-04-08 09:38:29 +0000 2011-04-08 09:38:29 +0000
353
353

如何恢复Linux中停止的工作?

如何恢复Linux中停止的工作?我在使用emacs的时候,不小心按了ctrl-z,把我轰回了控制台。当我输入'jobs’

[*****]$ jobs
[1]+ Stopped emacs test_queue.cpp
```时,我可以看到它。

答案 (5)

404
404
404
2011-04-08 09:39:38 +0000

你要使用的是fg命令。如果停止的作业不止一个,你也可以给它一个作业编号。

268
268
268
2011-04-08 11:55:01 +0000

Linux中一般的作业控制命令有

-jobs - 列出当前的作业 -fg - 恢复队列中的下一个作业 -fg %[number] - 恢复作业[编号] -bg - 将队列中的下一个作业推到后台 -bg %[number] - 将作业[编号]推到后台 - kill %[number] - 杀死编号为[number]的作业 - kill -[信号]%[number] - 将信号[信号]发送到作业[编号] - disown %[number] - 将进程关闭(不再有终端拥有者)。所以即使关闭了终端,命令也会存活。

差不多都是这样的。请注意命令中的作业号后面的%–这就是告诉kill你说的是作业而不是进程。

48
48
48
2013-08-26 21:04:40 +0000

你还可以输入%<process_name>;也就是说,你在emacs中按Ctrl-Z键,然后在控制台中输入%emacs,就可以把它带回前台。

34
34
34
2011-04-08 14:03:36 +0000

只是为了补充其他答案,bash如果你指定了工作编号,可以跳过fg

23
23
23
2016-02-04 19:49:59 +0000

如果你没有从当前终端启动,用ps aux | grep <process name>找到进程号(pid),然后用:

kill -SIGCONT <pid>

恢复它(尽管名字是这样的,但kill只是一个向进程发送信号的工具,让进程之间相互通信。一个 “杀死信号 "只是许多标准信号中的一个)

奖励提示:用[]包住进程名称的第一个字符,以防止grep命令本身出现在结果中。