macOS `ps` дает идентификатор пакета вместо пути для некоторых служб XPC - PullRequest
0 голосов
/ 14 ноября 2018

Мое приложение macOS может запускать приложение безликого помощника, которое поставляется в его Contents/Library/LoginItems с использованием Apple Service Management Framework, как описано в документации Apple .Забавно, что когда я запрашиваю программу unix ps, чтобы дать мне команду / пути, для этого вспомогательного процесса вместо этого он дает идентификатор пакета.Пример:

jk$ ps -x -o command
...
com.mycompany.MyAgent
...

Это дает мне один и тот же ответ с или без опции -c для ps.

Поскольку мое приложение имеет несколько разновидностей и версий, каждая из которых содержит разные помощникии поскольку пользователи могут иметь несколько установок и из-за иногда странного поведения Launch Services для целей самопроверки и диагностики я хотел бы получить путь к пакету или исполняемому файлу работающего помощника.

Почемуps дает вместо этого идентификатор пакета?Как я могу получить путь?

1 Ответ

0 голосов
/ 15 ноября 2018

Программа может а) переписать память, на которую указывает argv и строки, на которые она указывает, и / или б) вызвать setprogname().

Кажется, я помню, что setprogname() не не влияет на вывод ps, но перезапись argv влияет. Я мог бы иметь это задом наперед, хотя. Я знаю, что Wine выполняет и и влияет на команду, которую видит ps.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...