【发布时间】:2016-03-16 21:02:04
【问题描述】:
在我的 Raspberry Pi 上,我想在 pi 每次启动时执行一些代码。所以我将以下行添加到 /etc/rc.local
/home/pi/Documents/start.sh &
在该文件中,我有以下代码:
sudo airmon-ng start wlan0 &
sudo airodump-ng --write output mon0 &
python3 start_server.py output01.csv &
请注意,所有行都使用与符号在单独的子进程中处理。不幸的是,这不起作用。执行第一行时,我看到所有输出,然后在它终止后执行第二行,并显示所有输出。由于这个进程永远不会结束,所以进程永远不会终止,第三条语句也不会执行。
这里出了什么问题,为什么语句不在子进程中执行? [是的,我确信代码是正确的,因为它在一个终端中运行第 1-2 行并在另一个终端中运行第 3 行时完美运行]
【问题讨论】:
-
这些命令看起来像是相互依赖的。如果您颠倒三个命令的顺序,您会期望脚本正常工作吗?如果不是,您不能期望它们作为同时启动的单独子流程工作。
-
我会尝试静音输出
airodump-ng可能会像这样产生sudo sh -c 'airodump-ng --write output mon0 2>&1 >/dev/null' &
标签: linux bash shell raspberry-pi