別の画像が年中無休で実行されている間に、特定のC#画像のUbuntu 16.04実行が90秒後に停止するのはなぜですか?

別の画像が年中無休で実行されている間に、特定のC#画像のUbuntu 16.04実行が90秒後に停止するのはなぜですか?

私のC ++プログラムServiceController.exeが何であるかを知るために、straceに似たUbuntu Linux 16.04 systenコマンドを探したいと思います。

[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とComputationalImageClientServer.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,

1日24時間、週7日以上営業しています。

最初の例が年中無休で継続的に実行されないのはなぜですか?このエラーを診断、デバッグ、および修正するにはどうすればよいですか?

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

答え1

GNUデバッガ、gdbなどのツールを使用してください。

答え2

プログラムをデーモンとして実行することと「&」を使用してバックグラウンドに分岐することの違いは何ですか?

SIGHUPがServiceController.exeの実行を90秒後に停止させる原因である可能性があることを示します。 nohupコマンドは、&これが発生するのを防ぎます。

& コマンドを使用します。親プロセスが終了すると、プロセスはSIGHUP信号によって終了します。

ただし、システム管理者が使用できるいくつかの回避策があります。

Bashシステムでは、次のものを使用できます。(trap '' HUP;コマンド)&

これにより、空のハンドラでHUP信号を取り込み、アンパサンド/フォークするサブシェルが開きます。

出力がまだ間違ったttyにリダイレクトされる可能性があります。または迷子になったり。 &>command.out、1>output.out、または2>errors.outを使用してこの問題を解決できます。

ほとんどのシステムでは、nohupコマンドにアクセスすることもできます。 nohupはこのプロセスを大幅に簡素化します。これはかなり標準的ですが、多くのビジボックス内蔵ARMディストリビューションではこの機能がありません。次のように書くだけです:nohupコマンド&

..終わりました。出力はnohup.outにリダイレクト(IIRC)されますが、このファイル名はオプションを使用して変更できます。

関連情報