
但仅使用&命令,当关闭控制台终端时,任务同样会被终止。
nohup(no hang up)命令,即忽略SIGHUP信号。nohup能保证关闭控制台终端时,任务不被终止:
关闭控制台终端后,通过ps查看,easeapi.sh 的父进程由终端进程变成了init进程,即使关闭终端,任务依然能保持运行。nohup命令默认会在当前目录创建nohup.out文件存储输出信息。如果要输出到指定文件则:
nohup命令虽然简单,但在一些情况下可能并不好用。比如,想使用scp命令从需要验证的服务端下载文件时,直接使用nohup命令并不会出现验证交互。这种情况下,推荐使用bg/fg命令。
Ctrl + C 和 Ctrl + Z是linux中两种中断命令,但作用有不同。Ctrl + C是强制中断进程,而Ctrl + Z则是暂停任务执行。在终端中正常执行scp命令,输入账户密码后,使用Ctrl + Z暂停任务。
jobs命令显示当前任务状态。
可以看到任务已经暂停,任务编号为1。
bg/fg将可将任务在前后台切换。现在将任务切换到后台:
在通过jobs查看,任务状态已变成了running:
当关闭终端后,任务可能会被终止。可使用disown命令忽略SIGHUP信号。
在linux系统中有这两个命令 ctrl+z 和ctrl+c ,这两个命令输入之后看起来结果差不多,实质是不同的。 他们都有中断命令的效果,但是作用是不一样的。 ctrl+c是强制终止程序的执行并结束进程。而ctrl+z则只是中断任务的执行,但该任务并没有被结束。 它只是在进程中维持挂起的状态,用户可以使用fg/bg命令来继续前台/后台执行该任务。fg命令会重启 前台被中断的任务,bg命令会把中断的任务放到后台执行。 你也可以使用bg这样的方法让一个前台执行的任务切换到后台去执行。 也可以使用fg这样的方法让一个后台执行的任务切换到前台去执行。 还有一个最常用的方法是& 在一行命令的最后输入&,可以让这行命令放到后台去运行。 使用jobs命令查看当前有多少后台程序在运行。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)