Я управление удаленной машины Linux через SSH, мне нужно, чтобы иметь возможность знать идентификатор процесса во время его работы и его статуса выхода после запускаПечати идентификатора процесса только начала процесса до его выхода
Моя попытка состояла в том, чтобы выдать эту команду через SSH
my_cmd & echo $ !; wait $ !; echo $ ?;
Выход, таким образом, следующее, что именно мне нужно:
pid
...stdout...
exit_status
Теперь иногда бывает так, что, видимо, команда слишком быстро, так что я получаю что-то вроде:
...stdout...
pid
exit_status
Есть ли способ предотвратить такое поведение?
Спасибо! Я использовал вашу идею и немного изменил ее, чтобы написать 'bash -c 'echo $$; exec my_cmd '; echo $? '. Он работает хорошо до сих пор, я задаюсь вопросом, является ли это также стабильным решением. –
Кажется, но я думаю, что 'echo $?' Не будет вызываться, потому что оболочка вызывает exec раньше. Поэтому я думаю, что распечатки будут исправлены, но результат не будет напечатан. Тем не менее, я не испытал этого. –
На самом деле пока это кажется правильным –