我想在后台运行一个程序来收集一些性能数据,然后在前台运行一个应用程序。当前台应用程序完成时,它会检测到这一点并在后台关闭应用程序。问题是当后台应用程序在没有先关闭文件的情况下关闭时,我假设,文件的输出仍为空。有没有办法不断编写输出文件,以便在后台应用程序意外关闭时保存输出?
这是我的shell脚本:
./background_application -o=output.csv &
background_pid=$!
./foreground_application
ps -a | grep foreground_application
if pgrep foreground_application > /dev/null
then
result=1
else
result=0
fi
while [ result -ne 0 ]
do
if pgrep RPx > /dev/null
then
result=1
else
result=0
fi
sleep 10
done
kill $background_pid
echo "Finished"
我可以访问用C ++编写的后台应用程序的源代码,它是一个基本循环,并在每次循环迭代时运行fflush(outputfile)。
答案 0 :(得分:1)
这会更短:
./background_application -o=output.csv &
background_pid=$!
./foreground_application
cp output.csv output_last_look.csv
kill $background_pid
echo "Finished"