标签: launch-agent

launchd状态78是什么意思?为什么我的用户代理没有运行?

我想在登录时运行在后台运行的同步同步服务.但我的代理人的状态代码是78.我不知道为什么,我尝试了在线发布的一些修复,但它只是不起作用.

有什么问题??下面是我服务的plist文件.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>syncmyproject</string>
    <key>StandardOutPath</key>
    <string>/var/log/syncmyproject.log</string>
    <key>StandardErrorPath</key>
    <string>/var/log/syncmyproject.log</string>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>Debug</key>
    <true/>
    <key>EnableGlobbing</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/bin/unison</string>
      <string>-auto</string>
      <string>-batch</string>
      <string>-repeat watch</string>
      <string>~/home/project</string>
      <string>~/project</string>
    </array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

launchd launch-agent

34
推荐指数
5
解决办法
2万
查看次数

在Mac应用程序沙箱中使用LaunchAgent

你如何在沙盒中使用LaunchAgent?我想在我的主应用程序中分发一个无UI的LaunchAgent应用程序包,我可以按需启动它.我想要这个而不是XPC服务的原因是该KeepAlive选项,这将防止launchd在其空闲时自动杀死我的进程.XPC服务上不存在此选项.

文档说有一个需要复制的plist,~/Library/LaunchAgents这显然不可能在沙盒中.是否有某种系统API可以为我复制plist?我已经看过Apple的SMJobBless示例代码,但它似乎是用于注册特权LaunchDaemon而不是无特权的LaunchAgent.

macos cocoa xpc launchd launch-agent

7
推荐指数
1
解决办法
1528
查看次数

有没有办法在直接或通过蓝牙连接 HID 设备时执行 shell 脚本?

我正在利用 macOS 的hidutil命令来执行自定义键映射,按照 Apple 此处的链接。问题是我们使用的 KVM 会不断断开连接,然后重新连接键盘,每次发生这种情况时,我们的自定义键映射都会被清除,我们必须手动重新执行脚本。

我试图找出是否有一些我们可以监控的系统事件,或者一些启动代理或类似的东西,我们可以利用它们来自动执行脚本。

如果您能想到任何其他方法来保留这些设置,那也可以。

参考:https://developer.apple.com/library/archive/technotes/tn2450/_index.html

macos launch-agent

7
推荐指数
0
解决办法
263
查看次数

Jenkins Slave Issue - 无效的流标题:099EACED

Jenkins 2.7.4安装在RedHat服务器中,Linux Slaves通过选择"通过执行命令在主服务器上启动代理"选项进行配置.我们创建了一个Shell脚本,它在Jenkins版本2.7.4中运行良好.

现在我们将Jenkins升级到2.121.1.现在,同一个脚本会抛出错误

<=== [JENKINS REMOTING CAPACITY] ===>线程"main"中的异常java.io.StreamCorruptedException:无效的流标题:java.io的java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:808)中的099EACED. ObjectInputStream的.(ObjectInputStream.java:301)在hudson.remoting.ObjectInputStreamEx.(ObjectInputStreamEx.java:48)在hudson.remoting.ChannelBuilder.makeTransport(ChannelBuilder.java:478)在hudson.remoting.ChannelBuilder.negotiate(ChannelBuilder.java :433)at hudson.remoting.ChannelBuilder.build(ChannelBuilder.java:354)at hudson.remoting.Launcing.main(Launcher.java:743)at hudson.remoting.Launcher.runWithStdinStdout(Launcher.java:691)at hudson .remoting.Launcher.run(Launcher.java:373)at hudson.remoting.Launcher.main(Launcher.java:283)错误:连接已终止错误:启动代理时出现意外错误.这可能是詹金斯java.io.IOException的错误:在hudson.remoting在hudson.remoting.ChunkedInputStream.readUntilBreak(ChunkedInputStream.java:99)在hudson.remoting.ChunkedCommandTransport.readBlock(ChunkedCommandTransport.java:39)意外EOF. AbstractSynchronousByteArrayCommandTransport.read(AbstractSynchronousByteArrayCommandTransport.java:35)在hudson.remoting.SynchronousCommandTransport $ ReaderThread.run(SynchronousCommandTransport.java:63)ERROR:进程终止,退出代码1 java.io.IOException的:在hudson.remoting.ChunkedInputStream意外EOF. readUntilBreak(ChunkedInputStream.java:99)位于hudson.remoting.AbstractSynteArrayCommandTransport.read(AbstractSynchronousByteArrayCommandTransport.java:35)的hudson.remoting.ChunkedCommandTransport.readBlock(ChunkedCommandTransport.java:39)hudson.remoting.SynchronousCommandTransport $ ReaderThread.run(SynchronousCommandTransport) .java:63)另外:hudson.remoting.Channel $ CallSiteStackTrace:远程调用rtt- cud-euhrhd0036vdeas at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1741)at hudson.remoting.Request.call(Request.java:202)at hudson.remoting.Channel.call(Channel.java:954)at hudson .slaves.SlaveComputer.setChannel(SlaveComputer.java:549)在hudson.slaves.SlaveComputer.setChannel(SlaveComputer.java:416)在hudson.slaves.CommandLauncher.launch(CommandLauncher.java:153)在hudson.slaves.SlaveComputer $ 1 .CALL在java.util.concurrent.FutureTask中(SlaveComputer.java:288)在jenkins.util.ContextResettingExecutorService $ 2.call(ContextResettingExecutorService.java:46)在jenkins.security.ImpersonatingExecutorService $ 2.call(ImpersonatingExecutorService.java:71).运行(未知来源)java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源)java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知来源)java.lang.Thread.run(未知来源)引起:hudson在hudson.remoting.Channel的hudson.remoting.Request.abort(Request.java:340)上的.remoting.RequestAbortedException.终止(Channel.java:1038)在hudson.remoting.SynchronousCommandTransport $ ReaderThread.run(SynchronousCommandTransport.java:96)

如果我在Manage Jenkins - > Configure Security中禁用SSHD端口,那么我就可以启动我的slave.但是在我的脚本中,我将使用Jenkins-cli.jar触发一个作业,将二进制文件从master复制到slave. java -jar jenkins-cli.jar -s http://localhost:8080 --ssh -user username -i ~/.ssh/id_rsa build RTT/RTT-CI-Tools/RTT-CI-Tools-Distribute -s -p SLAVE_REGEX=slave name 我收到的消息是

"WARNING: No header 'X-SSH-Endpoint' returned by Jenkins" 
Run Code Online (Sandbox Code Playgroud)

并且构建不会被触发.我也尝试过在jenkins-cli.jar命令中将-ssh替换为-http,

java -jar jenkins-cli.jar -s …

linux shell jenkins launch-agent jenkins-slave

5
推荐指数
1
解决办法
390
查看次数

OSX:"Window Server:将前端应用程序设置为我的应用程序失败"

launchAgent使用以下命令从安装后脚本启动a :

su -l $LOGGED_IN_USER -c "/bin/launchctl load /Library/LaunchAgents/com.myApp.mac.agent.plist"
Run Code Online (Sandbox Code Playgroud)

代理显示状态项(NSStatusItem),其中包含几个菜单选项.其中一个有一个设置选项.单击此按钮将打开一个NSWindow,几个NSTextFields.有时,虽然这个窗口是最顶层的,但无论我输入什么内容都会转到底层应用程序.我无法在文本字段中输入任何内容.每当发生这种情况时,我会注意到控制台中的以下日志:

WindowServer[97]: [cps/setfront] Failed setting the front application to MyApp, psn 0x0-0xb20b2, securitySessionID=0x186c5, err=-600
Run Code Online (Sandbox Code Playgroud)

这不是一致的行为.知道为什么这个日志来了吗?这有什么工作吗?是否可以使用启动代理su -l

macos cocoa objective-c launch-agent window-server

5
推荐指数
1
解决办法
1027
查看次数

无法在OS X 10.10上为Qt Creator设置自定义$ PATH

我将Qt Creator与自定义生成系统(忍者)一起使用。问题是传递给Qt Creator IDE的$ PATH变量绝对是原始的:/usr/bin:/bin:/usr/sbin:/sbin

因此,我必须编写bash -c '/path/to/ninja list of targets'而不是仅仅ninja list of targets在终端中执行构建步骤,而不是在IDE中。

我尝试了所有已知的食谱来设置$ PATH。

  • 〜/ .bash_profile和〜/ .profile
  • / etc /路径
  • /etc/paths.d/*
  • /etc/launchd.conf(setenv PATH .....
  • 〜/ Library / LaunchAgents / *。plist(sh -c 'launchtcl setenv PATH $PATH:.....'
  • /图书馆/LaunchAgents/*.plist

StackOverflow答案中描述了使用启动年龄的想法。

没有效果!我的自定义.plist文件中的任何任意环境var都可以正确设置-PATH以外的任何值。(我已经对其进行了简单的测试:创建了一个自定义构建步骤echo xzxzxz=$XZXZXZ path=$PATH,其中在我的启动代理中也设置了xzxzxz)。

有趣的是,如果我从bash会话('/Applications/Qt Creator.app/Contents/MacOS/Qt Creator' &)启动Qt Creator ,它将获得与bash本身相同的正确PATH。

同样有趣的是,稍后启动代理分配的PATH被覆盖。我在那写信sh -c 'launchctl setenv PATH $PATH:/HELLOWORLD',但是我没看到HELLOWORLD echo $PATH。因此,存在竞争条件,稍后有人会从/ etc / paths和/etc/paths.d重建PATH。

从而:

  • 是否有详尽而最新的解释如何在OSX …

macos bash qt launchd launch-agent

5
推荐指数
1
解决办法
1125
查看次数

启动代理错误代码127

我有一个应该运行shell脚本的plist,shell脚本已经chmod +x /path/to/myscript检查过它运行正常.以下是我的帖子:

<plist version="1.0">
    <dict>
    <key>Label</key>
        <string>com.system.osx</string>
    <key>ProgramArguments</key>
    <array>
    <string>sh</string>
       <string>/Users/myuser/Library/.system/connect.sh</string>
    </array>
<key>KeepAlive</key>
<true/>
<key>ResetAtClose</key>
<true/>
    <key>RunAtLoad</key>
        <true/>
    <key>StartInterval</key>
        <integer>60</integer>
    <key>AbandonProcessGroup</key>
        <true/>
    </dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

plist已经加载,并且一个名为LaunchControl的调试启动程序告诉我它会抛出错误127. 在此输入图像描述

请帮忙!

macos bash shell launchd launch-agent

5
推荐指数
0
解决办法
2104
查看次数

列出 macOS 上所有已加载/已卸载或两者启动代理

我正在尝试使用以下命令找出现在加载了多少启动代理

find /System/Library/Launch* /Library/Launch* ~/Library/Launch* -name '*.plist' -exec sh -c '/usr/libexec/PlistBuddy -c "Print Label" {} && echo {}' ';' | grep -wf <(launchctl list | grep -o "\S\+\..*$") -A1

grep -B 1 -A 1 "active count = 1$" <<< "$(launchctl dumpstate)"
Run Code Online (Sandbox Code Playgroud)

但它没有列出我正在寻找的那个。这是对的吗?

macos launch-agent launchctl

3
推荐指数
1
解决办法
1万
查看次数

fastlane:从launchtl作业运行时找不到命令

嗨我做了一个集成,使用fastlane创建一个IOS项目的构建.除了我尝试启动脚本以使用launchctl在我的Mac计算机上运行fastlane命令时,一切都按预期工作.当我运行该作业时,我收到以下错误:

/Users/hugoaguero/Documents/acct/branding/usfed/ios/scripts/test.sh: line 2: fastlane: command not found
Run Code Online (Sandbox Code Playgroud)

在我的测试脚本上发生以下两行(部署是我在fastfile文件上创建的一个通道):

cd ~/Documents/acct/branding/usfed/ios/
fastlane deploy
Run Code Online (Sandbox Code Playgroud)

我的pList文件驻留在LaunchAgent文件夹中.这是pList文件的内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.zerowidth.launched.grobankingbuild</string>
    <key>ProgramArguments</key>
    <array>
        <string>sh</string>
        <string>-c</string>
        <string>/Users/hugoaguero/Documents/acct/branding/usfed/ios/scripts/test.sh</string>
    </array>
    <key>StandardErrorPath</key>
    <string>/tmp/com.zerowidth.launched.grobankingbuild.err</string>
    <key>StandardOutPath</key>
    <string>/tmp/com.zerowidth.launched.grobankingbuild.out</string>
    <key>StartInterval</key>
    <integer>300</integer>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

如果我从终端正常运行命令,它执行没有问题.唯一的问题是它从作业运行时.

我对终端/ Unix很新,我认为它应该是一个简单的解决方案,但需要尽快解决这个问题.请帮忙.

terminal ios launch-agent launchctl fastlane

2
推荐指数
1
解决办法
1960
查看次数