从 bash 在后台启动 4 个程序

从 bash 在后台启动 4 个程序

我有一个小问题,我创建了 4 个小程序,应该模拟 2 个传感器的操作。我需要它们一个接一个地运行,所以我将它们放在 bash 脚本中以使其更容易。

#!/bin/bash

cd ~/sensors/RANSensor
nohup python3 ~/sensors/RANSensor/DataGenerator.py -i ~/sensors/RANSensor/pm.csv > ~/output1.log 2>&1 &
cd ~/sensors/RANSensor
nohup python3 ~/sensors/RANSensor/main.py -i ~/sensors/RANSensor/pm.csv -o ~/data > ~/output2.log 2>&1 &
cd ~/sensors/RanTestSensor/target
nohup java -jar ~/sensors/RanTestSensor/target/RanTestSensor-1.0.0-SNAPSHOT-jar-with-dependencies.jar -p ~/sensors/RanTestSensor/src/main/resources/metric.generator.properties >~/output3.txt 2>&1 &
cd ~/sensors/UserSesnsor/target
nohup java -jar ~/sensors/UserSesnsor/target/UsersSensor-1.0.0-SNAPSHOT-jar-with-dependencies.jar -p ~/sensors/UserSesnsor/src/main/resources/metric.generator.properties >~/output7.txt 2>&1 &

但是,问题来了,因为当我运行脚本时,命令不运行。我知道这一点是因为输出文件是空的并且生成的数据文件(由 python 脚本生成)未更新。该jobs -l命令也没有显示任何内容。我知道这些命令是正确的,因为如果我在终端中手动运行它们,一切都会正常。有谁知道可能出了什么问题吗?

操作系统是Ubuntu 20.04.02,没有桌面。

我给了所有脚本权限 777。

预先感谢您的任何帮助。

我的问题的答案在评论中。

相关内容