Я считаю, что вам нужно установить "RunAtLoad" в "true", чтобы оно запускало ваше приложение, когда пользователь входит в систему.
Но нет способа установить RunAtLoad из командной строки при использовании "submit",По крайней мере, не в той версии launchctl.c, которую я проверил онлайн.
Похоже, вам нужно создать файл .plist с "load" вместо использования "submit".
Что еще более раздражает, так это то, что "load" в launchctl не может принимать stdin в качестве входных данных для имени файла .plist, либо без аргумента, либо с именем "-".Позор, возможно, разработчики launchctl не из фона Unix.Это означает, что вы вынуждены засорять свой недолговечный файл где-то в файловой системе, по крайней мере, до тех пор, пока он не будет загружен.