Bash 无法识别 .pid 文件

Posted

技术标签:

【中文标题】Bash 无法识别 .pid 文件【英文标题】:Bash not recognizing .pid file 【发布时间】:2015-01-06 05:13:14 【问题描述】:

我有一个进程 pid 存储在文件“app.pid”中。但是我从 Bamboo 执行的下面的 bash 脚本没有找到该文件。我已多次验证文件“app.pid”是否存在。

#!/bin/bash
pidFile=$1

echo $pidFile
pid=$(<"$pidFile")
if [ -z "$pid" ]; then
    echo "Pid not found!"
else
    echo "Pid exists! killing lookup service!!"
    kill $pid
fi

【问题讨论】:

尝试给出 pid 文件的完整路径? Bamboo 可能已经从不同的目录启动了您的脚本? 【参考方案1】:

这个:

[xyz@kuthu bin]$ ./app.pid
bash: ./app.pid: Permission denied

表明您正在尝试执行 PID 文件本身。您应该改为使用 app.pid 作为参数来运行您的脚本。

【讨论】:

是的,这两个文件输出和 ./app.pid - 我只是想分享。但是脚本我把pid文件路径作为输入 如果cat 不起作用,那么您有一个严重的问题。如,该文件实际上并不存在,如果cat 说它不存在。您没有在此处发布足够的信息来了解问题所在,但这与您使用的路径有关。 cat 可以在 shell 中工作,但不能在 Bamboo 中执行。 cat是绝对路径还是相对路径?如果您的路径不是以 / 开头(即它是相对的),那么您可能不在您认为所在的目录中。

以上是关于Bash 无法识别 .pid 文件的主要内容,如果未能解决你的问题,请参考以下文章

xargs 无法识别 bash 别名

Bash 脚本无法识别命令行参数? [复制]

解决 Windows 环境 Git Bash 里无法识别 Composer 命令的问题

为啥我的 bash 脚本无法识别 date 命令中的变量?

Git bash 无法识别“rev”命令

无法识别用于图像处理的 png 文件