如何将当前正在运行的linux进程置于后台?
我有一个命令,该命令使用git从Linux Shell将文件上传到远程服务器,这将需要许多小时才能完成。
如何将正在运行的程序放在后台?这样我仍然可以在Shell上工作并且该过程也可以完成?
回答:
使用CTRL + Z暂停该过程,然后使用命令bg
在后台将其恢复。例如:
sleep 60^Z #Suspend character shown after hitting CTRL+Z
[1]+ Stopped sleep 60 #Message showing stopped process info
bg #Resume current job (last job stopped)
手册页中有关作业控制和bg
使用的更多信息bash
:
作业控制在进程运行时
键入 暂停 字符(通常为^
Z,Control-Z)将导致该进程停止并将控制权返回给bash。[…]用户然后可以使用bg命令在后台继续操作此作业的状态[…]。^
Z立即生效,并具有额外的副作用,导致丢弃待处理的输出和提前输入。
bg [ jobspec …] 在后台
恢复每个暂停的作业 jobspec ,就好像它是由&开头的。如果 不存在 jobspec ,则使用 当前作业 的shell概念。
要开始一个过程,您甚至可以杀死终端,而终端仍在继续运行
nohup [command] [-args] > [filename] 2>&1 &
例如
nohup /home/edheal/myprog -arg1 -arg2 > /home/edheal/output.txt 2>&1 &
要忽略输出(不是很明智),将文件名更改为 /dev/null
要将错误消息设置为其他文件,请将更改&1
为文件名。
另外:您可以使用jobs
命令查看这些后台进程的索引列表。您可以通过运行kill %1
或kill %2
将数字作为该进程的索引来杀死后台进程。
以上是 如何将当前正在运行的linux进程置于后台? 的全部内容, 来源链接: utcz.com/qa/435078.html