Como obter o pid do arquivo su -session-command que é executado lá [fechado]

0

Esta linha foi executada em um script

su --session-command="$javaCommandLine & >>$serviceLogFile 2>&1 & echo \$! >$pidFile" $serviceUser || return 1
pid="$(<$pidFile)"
echo $pid

O Pid é aumentado em um do Pid pelo programa que realmente é.
Como faço para obter o pid desse programa?

    
por SSpoke 23.12.2013 / 06:56

1 resposta

1

Eu recebi uma resposta do serverfault stackexchange. por Daniel t. @ link

Citado:

The process ID is off by one because you have put an extra & after the $javaCommandLine. In other words, you have put two processes in the background before calling echo $!, thus getting the PID of >>$serviceLogFile 2>&1 rather than $javaCommandLine. Those two pieces should be put in one, as the old 2 line codes shows

 su --session-command="$javaCommandLine & >>$serviceLogFile 2>&1 & echo \$! >$pidFile" $serviceUser || return 1

You might need to change it to -

 su --session-command="$javaCommandLine >>$serviceLogFile 2>&1 & echo \$! >$pidFile" $serviceUser || return 1
    
por 23.12.2013 / 07:25

Tags