Linux:在后台启动命令
时间:2020-01-09 10:41:20 来源:igfitidea点击:
如何在后台启动或运行命令,以便可以立即访问命令提示符?
非连续调度的命令称为后台进程。您无法在屏幕上看到后台进程。
例如,Apache httpd服务器在后台运行以提供网页。您可以将Shell脚本或任何命令放在后台。
语法
您可以通过在命令行末尾追加一个"&"将任务(例如命令或脚本)放在后台。
&运算符将命令放在后台,并释放终端。
在后台运行的命令称为作业。
您可以在后台命令运行时执行其他命令。
语法为:
command & script-name & /path/to/command arg1 arg2 & command-1 | command-2 arg1 & command-1 | command-2 -arg1 -arg2 >/path/to/output &
例子
将ls命令放在后台,执行:
$ ls *.py > output.txt &
通过在命令行末尾添加&,将以下find命令置于后台:
find . -iname "*.mp3" > myplaylist.txt &
如何查看在后台运行的任务?
执行以下命令:
jobs
输出示例:
[1]- Running find / -iname "*.c" 2> /dev/null > /tmp/output.txt & [2]+ Running grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &
其中:
- [1]和[2]是作业IDS。
要查看除常规信息外的作业ID的进程ID,请通过-l选项:
jobs -l
输出示例:
[1]- 7307 Running find / -iname "*.c" 2> /dev/null > /tmp/output.txt & [2]+ 7324 Running grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &
要仅查看进程标识,请执行:
jobs -p
输出示例:
7307 7324
如何取消后台运行的作业?
使用kill命令可以优雅地或强制地终止进程。
语法为:
kill PID kill -15 PID kill -9 PID killall process-Name-Here killall -15 process-Name-Here killall -9 process-Name-Here
如何将后台运行的进程置于前台?
语法为:
%JOB-ID
或者
fg JOB-ID
首先,使用作业命令列出当前作业,执行:
jobs -l
输出示例:
[1]- 7307 Running find / -iname "*.c" 2> /dev/null > /tmp/output.txt & [2]+ 7324 Running grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &
要将作业ID#2置于前台,请执行:
%2
或使用fg命令:
fg 2
输出示例:
grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt
要在后台发送该作业,请按CTRL-Z,即在按住CTRL键的同时按z键。
这将暂停当前的前台作业。
执行以下命令以在后台发回作业:
%2 &
或使用bg命令:
bg