Почему Ubuntu 16.04 исполняет ограниченное изображение C # после 90 секунд, а другие – 24X7?

Я хотел бы найти команду Ubuntu Linux 16.04 systen, подобную strace, чтобы узнать, почему моя программа на C ++, ServiceController.exe, которая

[execle ("/usr/lib/mono/4.5/mono-service","/usr/lib/mono/4.5/mono-service", "./Debug/ComputationalImageClientServer.exe", 0, char const* EnvironmentPtr)] 

таинственно прекратить работу через 90 секунд * где * ComputationalImageClientServer.exe и ComputatationalImageClientServer.exe – это C # /. NET 4.5 исполняемые файлы

 In contrast, when I run /usr/lib/mono/4.5/mono-service.exe ./Debug/ComputatationalImageVideoServer.exe" at the command prompt, 

он работает постоянно в течение 24 часов, по крайней мере, на 7 дней.

Почему первый пример не может работать 24X7? Как я могу диагностировать, отлаживать и исправлять эту ошибку?

 open("Delaware_Client_Server.exe", O_RDONLY) = 3 pipe2([4, 5], O_CLOEXEC) = 0 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f743e4dca10) = 3509 close(5) = 0 fcntl(4, F_SETFD, 0) = 0 fstat(4, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 read(4, "", 4096) = 0 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=3509, si_uid=1000, si_status=1, si_utime=0, si_stime=0} --- close(4) = 0 wait4(3509, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], 0, NULL) = 3509 write(1, "\n", 1) = 1 write(1, "Process returned 256\n", 21) = 21 

2 Solutions collect form web for “Почему Ubuntu 16.04 исполняет ограниченное изображение C # после 90 секунд, а другие – 24X7?”

Используйте отладчик GNU, gdb или что-то подобное.

В чем разница между запуском программы в качестве демона и разворачиванием ее в фоновом режиме с помощью «&»?

указывает, что, возможно, SIGHUP является виновником сигнала, который заставляет ServiceController.exe прекратить работу через 90 секунд. nohup и предотвращает это.

С командой & Ваш процесс будет убит сигналом SIGHUP, когда родитель умирает.

Тем не менее, у Sysadmins есть доступ к некоторым обходным решениям.

В системе bash вы можете использовать: (trap '' HUP; command) &

Это открывает подоболочку, ловушки HUP-сигнала с пустым обработчиком и амперсанд / разворачивает его.

Вывод может по-прежнему перенаправляться на неправильный tty. Или заблудились. Вы можете исправить это с помощью &> command.out, 1> output.out или 2> errors.out

У вас также может быть доступ к большинству систем для команды nohup. nohup значительно упрощает этот процесс. Это довольно стандартно, но я обнаружил, что многие загруженные дистрибутивы ARM загружены без пропусков. Вы просто пишете: nohup command &

..и вы сделали. Результат перенаправляется, IIRC, на nohup.out, но это имя файла можно изменить с помощью опции.

  • Ubuntu Server 16.04.3LTS Squashfs как root из Grub
  • Freenas iscsi для VMware - Установите новый диск в Ubuntu
  • Переключить тачпад в HP ProBook 4530s
  • Как ограничить доступ ssh только для локального хоста?
  • Предустановленные несколько дисков
  • Как подключить исходный код функции elisp в Emacs?
  • DNSMASQ на Ubuntu в VM не предлагает аренду клиенту
  • Как убить процесс irq на Ubuntu 16.04?
  • Изменение переменной PATH для процесса, выполняемого как пользователь в Linux
  • Как сделать видео-поток с защитой DRM от Amazon Video запущен на Debian Jessie?
  • Как включить слияние дисков в fio в AWS Ubuntu 1604?
  • Linux и Unix - лучшая ОС в мире.