在 gnome-terminal 中启动的 c 程序停止运行

在 gnome-terminal 中启动的 c 程序停止运行

这是我第一次发帖,所以正在学习这个 askubuntu 发帖系统。我正在尝试使用 Ubuntu 的启动应用程序自动化我的 Ubuntu 14.04LTS 服务器。当电脑重新启动时,我会在 gnome-terminal 窗口中自动启动几个 bash 脚本。但是,当我通过启动应用程序启动我的 C 程序时,它会在大约 10 分钟到一个小时后停止运行。

以下是有效的启动应用程序命令的示例:

gnome-terminal -x sh -c "notifyserial.sh; #!/bin/bash"

(运行良好,脚本继续运行,监控进程,终端窗口保持活动状态)

我的名为“serial”的“c 程序”启动并更新打印语句,如下所示:

   Command: 14 01 - Cashless Reader Enable

   Starting main loop

   ********************************************************************

   Started    **serial**    program at : Wed Sep 27 17:19:27 2017

   ********************************************************************

大约 10-20 分钟后,程序停止,并在终端窗口顶部以黄色显示:

The child process exited normally with status 139.

在“启动应用程序”中,我尝试添加以下命令,重新启动计算机,然后等待查看“串行”程序是否继续无限期运行,但是它没有:

gnome-terminal -x sh -c "sudo ./myprogram"

gnome-terminal -e  "sudo ./myprogram"

gnome-terminal -x sh -c "startserial.sh; #!/bin/bash" && DISPLAY=:0 && wmctrl -r :ACTIVE: -b toggle,shaded

当我将终端配置文件设置为“保持终端打开”时,我得到以下信息:

The child process exited normally with status 139.

当我将终端配置文件设置为“退出终端”时,终端窗口消失。

我尝试将各种命令放入 bash 脚本中,因为我的其他脚本可以按预期无限期地工作。startserial.sh我尝试了 bash 脚本,分别重新启动了这些命令行并等待结果:

#!/bin/bash
#gnome-terminal -e "/home/cpi-machine3/serial_ver2_machine3_75centair_3_95"  --window-with-profile-internal-id=b9dc7b22-e86b-4ab0-9cdd-4470e1ed6b9
#/home/cpi-machine3/serial
#gnome-terminal -x sh -c "sudo ./serial"

我已经通过打开终端使用 gnome 终端启动了该程序:单击终端图标或按 ctrl + alt + t 并输入:

sudo ./serial

然后按回车键。我的程序运行了数周。Gnome Terminal 保持活动状态,并按照我编程的方式在屏幕上显示所有打印命令。

我的目标是让 c 程序“serial”在 PC 从以下情况重启时自动启动并保持运行:1. 断电 2. 我使用 Teamviewer 远程重启 PC 或 3. 通过 Gnome Schedule v2.2 按照定期计划重启。

回复:

在终端上尝试了这个但是大约 20 分钟后它就退出了(同样的问题):

gnome-terminal -x bash -c "sudo /home/cpi-machine3/serial"

根据反馈,我将在 Bash 脚本中尝试此命令:

 gnome-terminal -x bash -c "sudo /home/cpi-machine3/serial"

在即将出现的终端中,系统会要求您输入 root 密码并输入它,我说的对吗?

现在我输入命令后就不再需要输入密码了。

你的程序是否要以 root 身份运行?

我不知道。“serial”位于我的“/home”目录中。我从那里启动它。除非我使用“sudo”,否则它不会运行

它是否意味着系统服务?我不确定那是什么意思。

这是一个新问题:我通过打开终端窗口(单击终端图标)正常启动了“串行”,现在我的程序正在结束。命令提示符出现,就像按 ctrl + c 退出我的程序一样。在我运行此程序的任何一台电脑上,以前都没有发生过这种情况。

  Command: 14 01 - Cashless Reader Enable
  Starting main loop
  ********************************************************************
   Started    **serial**    program at : Wed Sep 27 17:44:11 2017

  ********************************************************************
  cpi-machine3@CPI-Machine3:~$ 

答案1

我终于意识到我的 C 程序有一个错误,导致它在运行 10 分钟到 1 小时后失败。不是终端出了问题。我仍然无法在启动应用程序中自动启动我的 C 程序。所以我会再做一些故障排除,如果需要帮助,稍后再发布这个问题。

相关内容