当前位置: 首页 > 面试题库 >

从MAC上的launchDaemon运行的Bash脚本-未连接到jenkins

慎建本
2023-03-14
问题内容

我有一个非常简单的plist文件,该文件应该可以运行我的脚本:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
    <string>com.example.ci</string>
    <key>ProgramArguments</key>
    <array>
        <string>sh</string>
        <string>/Users/Shared/Jenkins/Home/my_scripts/run_jenkins.sh</string>
    </array>
    <key>KeepAlive</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/Users/Shared/Jenkins/Home/stdout.log</string>
    <key>StandardErrorPath</key>
    <string>/Users/Shared/Jenkins/Home/error.log</string>
</dict>
</plist>

当我运行它时,什么也没发生-我的意思是,当我运行sh run_jenkins.sh它时,它会连接到我的jenkins服务器。但是当我从那sudo launchctl org.jenkins-ci.plist开始运行它时,它不会连接。我想念什么吗?


问题答案:

您在launchctl中缺少“加载”或启动命令:

sudo launchctl load -w org.jenkins-ci.plist

sudo launchctl start org.jenkins-ci.plist

您可能还应该使用以下命令使脚本可执行

chmod +x "/Users/Shared/Jenkins/Home/my_scripts/run_jenkins.sh"

并删除plist文件中的“ sh”行。

并确保您的脚本以正确的shebang行开头:

#!/bin/sh

并在plist文件上设置权限:

chmod 644 org.jenkins-ci.plist


 类似资料:
  • 有一个网站有一个按钮,点击该按钮应该有一个bash脚本,该脚本假设卸载一个目录。该按钮调用php脚本,带此函数: 我的问题是:当im在shell中运行命令时: 它很好用。 当我单击按钮时,会出现测试,但它不会运行脚本。如何查看日志?我可以将日志打印到shell吗?我不能,因为它被激活使用html上的按钮 我想这是权限问题?

  • 问题内容: 我的以下代码有问题: callBash.py: sleep.sh: 我希望10秒钟后打印“结束”。(我知道这是一个愚蠢的示例,我可以简单地在python中睡眠,但是这个简单的sleep.sh文件只是作为测试) 问题答案: 使sleep.sh可执行并添加到参数列表中(如先前答案中所建议)可以正常工作。根据搜索路径,您可能还需要添加或其他合适的路径。(即,更改为。) 如果bash脚本的第一

  • 我有一个脚本,它需要两个每次都不相同的输入。所以我必须在每次运行脚本时手动输入。我确实想把这个脚本部署到Heroku。但遗憾的是,我无法在heroku:worker中手动给出任何种类的输入。我不能使用任何环境变量,参数,因为这两个输入不是静态的。所以heroku:worker总是得到“没有输入”的错误。 所以我决定用命令< code > heroku run python 3 main . py

  • 我试图从一个简单的BASH脚本执行一个简单的PHP脚本。这个网站上的答案不能回答我的问题。 这是我的BASH脚本 这是我的PHP脚本 从命令行运行BASH脚本时,出现以下错误。 我试过键入/usr/bin/php-q/home/username/subfolder/durable2。这很好。它跑起来了

  • 我一直在尝试通过Launchctl安排我的一个python脚本,但遇到了一个错误。目的是它在每个小时的给定时间运行。 我已经创建了plist,并将其加载到Launchctl中,但它无法正常工作。在做了一些挖掘后,我调试并得到以下错误消息:Traceback(最近一次调用最后一次):文件/Library/框架/Python.framework/Versions/3.8/lib/python3.8/s

  • 问题内容: 我有一个非常简单的问题。我是Mac的新手,我正试图将Java项目移到新Mac上。该项目有一个Gradlew文件,我认为我可以从命令行运行以在任何计算机上构建和运行。当我从命令行(在gradlew文件的位置)执行gradlew时,它说未找到gradlew。我是否缺少有关如何从bash shell运行命令的内容? 问题答案: 您的gradlew目录未包含在PATH中,因此您必须指定grad