前言


pyinstaller 打包的 python 二进制可执行程序运行的时候,会在 /tmp 目录下生成 _MEI* (*指的是随机数字)文件夹,

如果程序没有正常退出或者终止了,_MEI* 文件夹就会留下来。这中情况下,如果重启 linux 是可以清理 /tmp 目录的,但

如果不能轻易重启 linux, 就要另想方案来清理。

如果在程序运行中,直接删除 _MEI* 文件夹,会影响程序的正常运行。所以方案就是找到没有被程序占用的 _MEI* 文件夹并

删除。

看到有的博客是在程序运行结束后,执行一遍删除操作,但并不适合程序连续运行且重启的情况。下面给出了一种使用 linux lsof

指令找到未被占用的 _MEI* 文件并删除的方案。

正文


clean.sh

#!/bin/bash

# 清除 /tmp/目录下类似于_MEI1iHg0y的不被占用的文件,防止占用存储过多
# 遍历/tmp/目录下的所有文件夹
for dir in /tmp/*; do
# 检查文件夹名称是否符合特定模式
if [[ $dir =~ _MEI[0-9a-zA-Z]{6} ]]; then
# 检查文件夹是否被其他进程占用
has_pid=`lsof +D ${dir} 2> /dev/null | grep COMMAND`
if [[ ${has_pid} == "" ]]; then
# 删除文件夹及其内容
rm -rf $dir
if [[ $? == 0 ]];then
echo -e "Delete $dir success"
else
echo -e "Delete $dir failed"
fi
fi
fi
done

linux 清理 pyinstaller 打包程序运行留下的临时文件的更多相关文章

  1. pyinstaller打包程序 带图片

    首选说一下,这种打包方式只能在本电脑上使用运行正常 准备:.py文件:你的程序 gif文件:你要用的图片 第一步: 在上面文件所在目录打开cmd 输入 pyi-makespec FP.py 会生成一个 ...

  2. 关于pyinstaller打包程序时设置icon时的一个坑

    关于pyinstaller打包程序时设置icon时的一个坑     之前在用pyinstaller打包程序的时候遇到了关于设置图标的一点小问题,无论在后面加--icon 或是-i都出现报错.查了下st ...

  3. python 脚本中使用了第三方openpyxl 打包程序运行提示ImportError:cannot import name __version__

    最近写了一个脚本,脚本中使用了第三方openpyxl(openpyxl是使用 pip install openpyxl 下载的),先是使用py2exe打包程序,打包过程中提示很多文件没有包含,在没有仔 ...

  4. Python Pyinstaller 打包程序及遇到的问题总结

    一.如何打包py程序 1.安装打包模块 pip install pyinstaller 2.定义保存包的路径 CMD ,CD 比方:把最终*.exe运行文件,保存到H盘 install 文件夹下. 输 ...

  5. Pyinstaller 打包程序为可执行文件exe

    Pyiinstaller打包 pyinstaller是python的一个第三方模块,使用它可以将pythnon程序打包为可执行文件,实现打包后的程序在没有python环境的机器上也可以运行.pyins ...

  6. python 使用pyinstaller打包程序

    使用pyinstaller 打包.py脚本,在其他计算机可以直接运行,不需要python环境 安装pyinstaller库 pip install pystaller 打包程序 pyinstaller ...

  7. pyinstaller打包exe运行失败

    使用Pyinstaller来打包自己开发的软件时遇到的几个问题及解决方法.工具主要功能是数据分析,使用机器学习算法完成数据训练和预测功能.主要用到了两个学习库keras和sklearn,所以说在打包时 ...

  8. linux下实现在程序运行时的函数替换(热补丁)

    声明:以下的代码成果,是参考了网上的injso技术,在本文的最后会给出地址,同时非常感谢injso技术原作者的分享. 但是injso文章中的代码存在一些问题,所以后面出现的代码是经过作者修改和检测的. ...

  9. linux(ubuntu) 搭建java程序运行环境

    一:简介 ubuntu 系统的和linux差不多,我们需要在系统上搭建java程序运行环境,需要安装jdk,mysql这两个软件,tomcat是绿色版,直接通过taz -zxvf tomcat 就可以 ...

  10. linux下实现在程序运行时的函数替换(热补丁)【转】

    转自:http://www.cnblogs.com/leo0000/p/5632642.html 声明:以下的代码成果,是参考了网上的injso技术,在本文的最后会给出地址,同时非常感谢injso技术 ...

随机推荐

  1. 03.redis 事务

    课程学习地址: https://www.bilibili.com/video/BV1S54y1R7SB?p=23 中间手册地址: http://www.redis.cn/ Redis事务本质:一组命令 ...

  2. 开发环境需要同时安装2个nodejs版本

    由于同时有vue2和vue3的项目开发情况,vue2项目的nodejs版本是12,vue3项目在node12版本下运行不了,要求最低14版本,因此要用nvm同时安装和控制2个版本. 安装步骤: 1.卸 ...

  3. Cesium的HeadingPitchRange 用法

    这个有别于headingpitchroll, headingpitchroll是用在orientation属性上的(比如相机的setView,flyTo,以及entities.add中) Headin ...

  4. OAI SDR LTE 基站部署

    目录 文章目录 目录 硬件设备要求 物料购买 部署架构图 安装 LTE/EPC 前期准备 运维相关 操作系统要求 内核要求 CPU Frequency scaling,将 CPU 频率打满 eNode ...

  5. redis cluaster (redis分布式集群 redis分片集群)

    redis cluaster (redis分布式集群) 高可用: 在搭建集群时,会为每一个分片的主节点,对应一个从节点,实现slaveof的功能,同时当主节点down,实现类似于sentinel的自动 ...

  6. python脚本将ascii码形式的文件转换为真正的二进制文件

    1.通过tcpdump在越狱手机上面抓取所有包,包含环路包 将手机通过USB线连接电脑,并将其映射到本地端口,启动抓包 rvictl -s bb44203ca128c7b13bfc66fa34f6c1 ...

  7. react祖先与子孙多层传值

    先做数据源store.js文件 // 状态 store 统一数据源 import React, { createContext } from 'react' // Provider 发布消息 // C ...

  8. LeetCode 715. Range Module Range 模块 (Java)

    题目: A Range Module is a module that tracks ranges of numbers. Your task is to design and implement t ...

  9. ABC330

    D 记录每一行,每一列有多少个 o,然后统计答案即可. code E 想到 \(mex^{i \le n}_{i = 1} a_i \le n\) 这整个题就可做了(赛时因为没想到这个,痛失 \(47 ...

  10. ChatGPT应用与实践初探

    近期,长江商学院EMBA38期&甄知科技开展了题为"ChatGPT应用与实践初探"的线下沙龙活动,由上海甄知科技创始合伙人兼CTO张礼军主讲,主要给大家解密最近很火的Cha ...