Index: strace-4.12/strace.1 =================================================================== --- strace-4.12.orig/strace.1 2016-05-26 17:34:28.000000000 +0200 +++ strace-4.12/strace.1 2018-04-30 13:08:34.770163287 +0200 @@ -601,10 +601,13 @@ is used. .LP When using -.BR \-p , +.B \-p +without a +.IR command , the exit status of .B strace -is zero unless there was an unexpected error in doing the tracing. +is zero unless no processes has been attached or there was an unexpected error +in doing the tracing. .SH "SETUID INSTALLATION" If .B strace Index: strace-4.12/strace.c =================================================================== --- strace-4.12.orig/strace.c 2018-04-30 13:07:36.776730188 +0200 +++ strace-4.12/strace.c 2018-04-30 13:08:34.771163277 +0200 @@ -138,7 +138,7 @@ /* Are we "strace PROG" and need to hide everything until execve? */ bool hide_log_until_execve = 0; -static int exit_code = 0; +static int exit_code; static int strace_child = 0; static int strace_tracer_pid = 0; @@ -2446,6 +2446,8 @@ { init(argc, argv); + exit_code = !nprocs; + while (trace()) ;