亚马逊linux ec2上的yum锁定问题

wmomyfyw  于 2023-03-17  发布在  Linux
关注(0)|答案(3)|浏览(168)

我在aws datapipeline发布的amazon linux服务器(amid-ami-0a887e401f7654935)上使用这个shell命令。

#!/bin/bash

sudo yum install -y amazon-linux-extras
sudo amazon-linux-extras enable python3.8
sudo yum install -y python3.8
pip3.8 install --user pipenv
echo "PATH=$HOME/.local/bin:$PATH" >> ~/.bashrc
source ~/.bashrc
aws s3 cp s3://bucketname/datapipeline/scriptfolder/ /home/ec2-user/ --recursive
mkdir -p /home/ec2-user/input
cd /home/ec2-user/
pipenv install --ignore-pipfile
echo "installation done"
pipenv run python3 main.py

每次我运行几分钟后得到以下错误。

errorMsg :    Memory :  46 M RSS (262 MB VSZ)
    Started: Tue Mar 16 01:47:44 2021 - 00:01 ago
    State  : Running, pid: 3746
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: yum
    Memory : 139 M RSS (430 MB VSZ)
    Started: Tue Mar 16 01:47:44 2021 - 00:03 ago
    State  : Running, pid: 3746

我试着在最后一个echo命令后添加这个rm -f /var/run/yum.pid,但是它给了我同样的错误。你能帮忙吗?

cczfrluj

cczfrluj1#

获取yum的运行PID,如果该PID正在运行,则删除该PID;

辅助|格里普·亚姆

然后

关闭-9PID

cbeh67ev

cbeh67ev2#

我纠结于这个问题:

Existing lock /var/run/yum.pid: another copy is running as pid 3114. Another app is currently holding the yum lock; waiting for it to exit...   The other application is: yum
    Memory :  31 M RSS (247 MB VSZ)
    Started: Thu Sep 23 21:42:19 2021 - 00:02 ago
    State  : Running, pid: 3114

我甚至在我的用户数据中添加了调试:

#!/bin/bash
echo "## var run" > /tmp/yum.out 
ls -la /var/run/ >> /tmp/yum.out
echo "## contents of pid file" >> /tmp/yum.out 
cat /var/run/yum.pid >> /tmp/yum.out 
echo "## PS output" >> /tmp/yum.out 
ps -ef >> /tmp/yum.out
...

通过该输出,我发现A〉没有/var/run/yum.pid文件,B〉在ps -ef的输出中没有pid 3114,本质上是一个幻像pid。
通过大量的试验和错误,我最终在我的用户数据中做了一个改变,完全解决了这个问题。我把/bin/bash改为/bin/sh。突然之间,一切都开始正常工作了。

wnvonmuf

wnvonmuf3#

在yum call的末尾使用&&,因此您的could应该是

sudo yum install -y amazon-linux-extras &&
sudo yum install -y python3.8 &&

我不知道为什么,但应该可以了。

相关问题