我需要在后台运行一个程序。问题是程序执行 tcsetattr() 调用并将原始模式设置如下:
struct termios tio;
if (tcgetattr(fileno(stdin), &tio) == -1) {
perror("tcgetattr");
return;
}
_saved_tio = tio;
tio.c_iflag |= IGNPAR;
tio.c_iflag &= ~(ISTRIP | INLCR | IGNCR | ICRNL | IXON | IXANY | IXOFF);
tio.c_lflag &= ~(ISIG | ICANON | ECHO | ECHOE | ECHOK | ECHONL);
// #ifdef IEXTEN
tio.c_lflag &= ~IEXTEN;
// #endif
tio.c_oflag &= ~OPOST;
tio.c_cc[VMIN] = 1;
tio.c_cc[VTIME] = 0;
if (tcsetattr(fileno(stdin), TCSADRAIN, &tio) == -1)
perror("tcsetattr");
else
_in_raw_mode = 1;
这意味着,只要我使用“&”运行我的程序并按 Enter,该过程就会显示“已停止”。甚至 ps aux 输出也将“T”显示为进程状态,这意味着它没有运行。我怎样才能让这个程序在后台运行。问题是我不能修改这个程序。
有关完整的详细信息,实际上我需要使用带有 'sol' 的 ipmitool 作为后台进程。
任何帮助表示赞赏!谢谢