如何在shell脚本中创建作业?
问题描述:
我知道执行一个命令并添加&
到最后会创建一个作业并使该命令在后台执行。如何在shell脚本中创建作业?
现在我想在bash shell中创建一个作业。我试图
#!/bin/bash
my-job &
# some other tasks
然后我执行jobs
,但我没有输出。但ps aux
确实显示my-job
正在后台运行。
我想在脚本中创建一个作业,因为在某些情况下,我想将作业带入前台。
答
jobs
通常是一个交互式shell的概念,因为通常涉及一个控制终端。
shell脚本是在shell的非交互式非登录会话中执行的,因此缺省情况下没有作业控制。
您可以强制作业控制脚本中,通过设置:
set -m
在脚本中。
从help set
:
-m Job control is enabled.