![通过詹金斯用户运行的脚本被杀死](https://linux22.com/image/736785/%E9%80%9A%E8%BF%87%E8%A9%B9%E9%87%91%E6%96%AF%E7%94%A8%E6%88%B7%E8%BF%90%E8%A1%8C%E7%9A%84%E8%84%9A%E6%9C%AC%E8%A2%AB%E6%9D%80%E6%AD%BB.png)
在我们的 jenkins 构建配置中,我们将以下 shell 命令(执行 shell)作为构建过程的最后一步。
echo "$USER"
echo "Script executed from: ${PWD}"
git submodule update --init --recursive
if [ -f composer.json ]; then
/usr/local/bin/composer install
fi
sed -i 's/phpunit --bootstrap/\/usr\/local\/bin\/phpunit \-\-bootstrap/g' runtest
./runtest --config unittest/configure.conf --coverage /var/lib/jenkins/workspace/coverage/
一切曾经运行正常,直到我们的硬盘满了,jenkins 停止构建。在我们清理硬盘并再次尝试通过 jenkins 构建后,最后一步(执行 shell)构建失败,并出现以下错误:
[project] $ /bin/sh -xe /tmp/hudson815776538860444797.sh
+ echo jenkins
jenkins
+ echo 'Script executed from: /var/lib/jenkins/workspace/project'
Script executed from: /var/lib/jenkins/workspace/project
+ git submodule update --init --recursive
error: git-submodule died of signal 9
Build step 'Execute shell' marked build as failure
我们尝试以 root 身份运行 shell 命令,一切如预期。但是,一旦我们以 jenkins 用户身份运行它,该进程就会在几秒钟内被终止。
[root@localhost project]# su -c "/bin/bash -x /tmp/hudson5288327457846724302.sh" -s /bin/sh jenkins
+ echo jenkins
jenkins
+ echo 'Script executed from: /var/lib/jenkins/workspace/project'
Script executed from: /var/lib/jenkins/workspace/project
+ '[' -f composer.json ']'
+ /usr/local/bin/composer install
Killed
我检查了系统日志,/var/log/messages
但没有找到任何线索。是什么原因导致了这个问题?我们如何解决这个问题?
答案1
您的机器的状态如何,特别是内存:
free -m
这可能是 OOM 杀手。你会看到日志。尝试
grep -i “killed process” /var/log/messages