bash - Launch Job 无法执行 bash 脚本,接收异常代码 126
问题描述
我正在尝试让我的启动作业执行 bash 脚本。bash 脚本将获取当前日期时间并将其存储在文本文件中。
这是我当前在 ~/Library/LaunchAgents/ 目录下的 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.intern.testing</string>
<key>ProgramArguments</key>
<array>
<string>/Users/intern/Desktop/Python/plist_create/testing.sh</string>
</array>
</dict>
</plist>
以下是我的 bash 脚本 (testing.sh) 的内容:
#!/bin/bash
fileName="/Users/intern/Desktop/Python/plist_create/date_time.txt"
date >> $fileName
但是,当我执行时launchctl start com.intern.testing
(在检查列表中找到作业后),我收到以下错误。
9 月 30 日 15:55:19 interns-Mac com.apple.xpc.launchd 1 (com.user.testing[584]):服务退出,异常代码:126
我已经确保赋予我的 bash 脚本执行权。
我知道有几个人遇到了与我相同的退出代码,但这些解决方案对我不起作用。当我检查退出代码 126 的含义时,链接说明
调用的命令无法执行
我不确定哪个命令不能执行?我尝试自己执行 bash 脚本 ( ./testing.sh
) 并且它有效。有人可以帮助我吗?
[格林威治标准时间+8 10 月 4 日上午 10 点 35 分更新]
这是更新的 bash 脚本:
#!/bin/bash
fileName = "/tmp/a.txt"
/bin/date >> "$fileName"
但是,更新后的 bash 脚本也不起作用。
[更新于 10 月 7 日下午 2 点 50 GMT+8]
根据@MarkSetchell 的建议,我已将 StandardErrorPath 键添加到我的 plist 文件中。这是更新的 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.intern.testing</string>
<key>ProgramArguments</key>
<array>
<string>/Users/intern/Desktop/Python/plist_create/testing.sh</string>
</array>
<key>StandardErrorPath</key>
<string>/tmp/test.stderr</string>
</dict>
</plist>
我还更新了 bash/shell 脚本:
#!/bin/bash
fileName="/tmp/a.txt"
/bin/date >> "$fileName"
当我开始启动作业并访问 stderr 文件时,它说/bin/bash: /Users/intern/Desktop/Python/plist_create/testing.sh: Operation not permitted
是因为我的脚本没有足够的权限吗?还是正在执行脚本的“当前用户”没有足够的权限?
解决方案
推荐阅读
- tensorflow - keras 适合性能 - 单 GPU 并行性不起作用
- git - 压缩的提交在 rebase 到它的父分支 Git 后返回
- go - 当第一个错误发生时如何停止 errGroup goroutines
- r - 使用 mutate across 和 ifelse 语句将 k 和 M 转换为成千上万
- reactjs - 当我部署到 circle-ci 时构建错误(版本错误)
- c# - 从源“http://localhost:4200”访问“http://localhost:25776/api/Upload”处的 XMLHttpRequest 已被 CORS 策略阻止
- scikit-learn - Dask-ML 与 sklearn 随机森林导致连接闭合
- kubernetes - 为什么 OpenShift OC 在尝试镜像 OKD 安装映像时“无法检索发布映像信息”?
- java - 如何使用 string.format .. 我们可以添加一个带整数的字符并将其存储在整数中,如下面的代码
- css - 如何在 Material UI 中将 Radio 组与 TextField 对齐?