在我的示例中,我运行的命令执行时间很长(几个小时)。
我真的不记得我输入了make还是make -j4。
当然,我可以停止它并按键或查看历史记录来知道它,但这将停止该过程,并且我不希望发生这种情况(如果它已经在执行make -j4)。
有什么方法可以知道在不停止进程的情况下正在执行哪个命令?
make
您可以停止并重新启动它,它应该在中断的地方继续运行。
在我的示例中,我运行的命令执行时间很长(几个小时)。
我真的不记得我输入了make还是make -j4。
当然,我可以停止它并按键或查看历史记录来知道它,但这将停止该过程,并且我不希望发生这种情况(如果它已经在执行make -j4)。
有什么方法可以知道在不停止进程的情况下正在执行哪个命令?
make
您可以停止并重新启动它,它应该在中断的地方继续运行。
Answers:
终端窗口处于活动状态时,您可以按Ctrl+ 暂停(暂停)该过程Z。然后,您可以通过键入在后台推送作业bg
(您的作业现在将继续在后台运行,并且您可以同时在命令行上进行工作;这等效于&
在命令行末尾启动作业)。然后使用光标箭头(向上和向下)查看所使用的命令。如果需要(但这不是必需的),可以通过键入将您的工作放在前台fg
。
for X in {1..1000} ; do sleep $X ; done
的循环,则该循环将被中断,并且不会发生其余的迭代。
jobs
如@ichabod的答案所示),然后通过进行恢复即可fg
。
动态查看此消息的一种好方法是在顶部运行,它告诉您总体系统状态以及系统上正在运行的进程。
进行“ ps ux”可显示您的进程以及pid和其他信息,如果需要,您可以使用技能将其杀死,手册页是一个不错的资源,而执行技能或杀死-9会得到粘性过程。挂在设备等待等中。您还可以将其他信号发送到-hup等进程,重新启动守护程序等。
Top很不错,因为它显示了进程的大小,经过的时间,当前的cpu状态以及内存和交换的状态。
我经常在make.out日志文件上执行$ make>&make.out&,然后执行更少或tail -f。从现在开始,make作为一个进程从我的shell会话中分离出来。
pgrep -a make