Quando você executa service httpd configtest
, ele realmente executa o comando apachectl configtest
:
....
apachectl=/usr/sbin/apachectl
....
graceful|help|configtest|fullstatus)
$apachectl $@
RETVAL=$?
;;
....
Faça um strace
:
$ strace -f -e trace=write apachectl configtest
Process 22999 attached (waiting for parent)
Process 22999 resumed (parent 22998 ready)
[pid 22999] write(1, "1024\n", 5) = 5
Process 22999 detached
--- SIGCHLD (Child exited) @ 0 (0) ---
Process 23000 attached (waiting for parent)
Process 23000 resumed (parent 22998 ready)
Process 22998 suspended
[pid 23000] write(2, "Syntax OK\n", 10Syntax OK
) = 10
Process 22998 resumed
Process 23000 detached
--- SIGCHLD (Child exited) @ 0 (0) ---
Você pode ver que a saída Syntax OK
é gravada em stderr
, faz com que a saída não possa salvar na variável var
.
Você pode fazê-lo, redirecionando stderr
para stdout
:
var=$(service httpd configtest 2>&1)