为什么我的 powershell 脚本可以用“pwsh”运行,但不能用“sudo pwsh”运行?

为什么我的 powershell 脚本可以用“pwsh”运行,但不能用“sudo pwsh”运行?

我对 Ubuntu / Linux 还不太熟悉,所以如果我使用的术语不正确,请多多包涵。我使用的是 Ubuntu 20.04,但我使用 Putty 通过终端执行所有操作。

我正在使用一组 shell 脚本(.sh文件)和 PowerShell 脚本(.ps1文件)来检索 Azure 指标数据。我已将其设置为crontab每 15 分钟运行一次,并且它运行了大约一个月,没有任何问题。我使用的是从 snap/snapd 安装的 PowerShell 7.4.0。

这些脚本不再适用于 crontab。具体来说,它不再从 Azure 检索数据。我知道这不是 Azure 问题,因为我可以使用 在命令行中手动运行该脚本pwsh /full/path/xyz.sh <parameter>。但是,当我尝试使用sudobefore运行该脚本时pwsh,我收到两行错误:

堆栈溢出。
已中止

我假设这两个问题相关,但我尝试过更改权限、删除并重新添加 PowerShell、更改文件所有者/组、更改用户调用脚本的方式crontab,以及我在其他论坛上找到的其他一些方法。我能找到的与脚本相关的唯一错误日志是/var/log/apport.log

executable does not belong to a package, ignoring

希望这些信息足够,但如果需要,我可以提供更多信息。

答案1

发现找不到crontab所以pwsh我放置了整个路径/snap/bin/pwsh而不是仅仅pwsh在 shell 脚本文件中来运行该.ps1文件然后一切又恢复正常了。

相关内容