Есть две вещи, которые нужно проработать.Одним из них является то, каким будет процесс, а другим - то, что будет выполнять процесс.
Что касается процесса, он может быть почти любым, что вы хотите.Например, вы можете отправить сигнал (например, SIGUSR1
) процессу, и он записывает свое состояние в файл.У вас может быть локальный сокет домена UNIX, к которому вы подключаетесь, и он записывает свой статус.У вас есть много вариантов.
Во-вторых, что на самом деле будет выполнять процесс.Одним из способов было бы запустить ваше приложение с помощью специального параметра командной строки, например --status
, и оно выполняет шаги, необходимые для получения статуса, и записывает их в стандартный вывод.Это позволит вам делать такие вещи, как MyApplication --status
, чтобы увидеть статус, или MyApplication --status | SomeOther Application
, чтобы отправить статус в другое приложение.
Вы можете просто открыть файл журнала, в который записывается статус, когда SIGUSR1
получено.Затем вы можете использовать версию tail -f <logfile>
, а затем kill
для отправки SIGUSR1
в ваше приложение.
Это ваше дело.Там нет "одного правильного пути".