为什么如果我通过 makefile 运行程序,它不会出现在列表中jobs
,但如果我直接从命令行运行命令,它就会出现?
#:~/code/coinprice-indicator$ python3 coin/coin.py &
[1903] python3 coin/coin.py &
#:~/code/coinprice-indicator$ Coin Price Indicator v0.9.3 running!
#:~/code/coinprice-indicator$ make
python3 coin/coin.py &
#:~/code/coinprice-indicator$ Coin Price Indicator v0.9.3 running!
#:~/code/coinprice-indicator$
#:~/code/coinprice-indicator$ jobs
#:~/code/coinprice-indicator$
答案1
这很正常。的目的jobs
不是为了展示全部后台进程;它只列出当前正在运行的那些“作业”由你的 shell 拥有并能受其控制。
(也就是说,在交互式 shell 中,&
操作员实际上将它们添加到 shell 的内存作业列表中。但由于make
启动了一个新的每个配方命令的子 shell 进程,作业信息不会自动向上传播——它只是丢失了。)