我有一个问题给你专家。
我有一台服务器使用ncurses来显示MPI软件通过套接字发送的数据。我正在尝试在后台启动服务器,启动MPI进程,然后恢复服务器。
我写了一个小的bash脚本:
echo "starting monitor"
./server &
jobnumber=$(jobs | grep './server &' | grep -o '\[[0-9]*\]' | cut -d "[" -f2 | cut -d "]" -f1)
mpiexec [...]
fg $jobnumber
一切都运行顺利,但有一点:服务器不等待关键推送死亡,突然死亡。 我认为输入重定向有问题,但我真的需要你的建议。提前谢谢!
玩得开心
GF
P.S。:服务器可以简化为:
int main(){
initscr();
[...]
getch();
endwin();
return 0;
}
答案 0 :(得分:0)
要将输入重定向保留到前台作业,您必须以监控模式运行脚本。 添加:
set -m
到脚本的第一行。所以你会:
#Set monitor mode
set -m
echo "starting monitor"
./server &
jobnumber=$(jobs | grep './server &' | grep -o '\[[0-9]*\]' | cut -d "[" -f2 | cut -d "]" -f1)
mpiexec [...]
fg $jobnumber
现在输入重定向就像魅力一样。 玩得开心
GF