前言


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. Javascript返回顶部和砸金蛋,跑马灯等游戏代码实现

    1. 我们经常写页面的时候会遇到页面很长需要做返回顶部的操作:$("id /class").animate({scrollTop:$('.class').offset().top} ...

  2. 处理flex布局

    点击查看代码 <view class="recommend-view"> <view class="title-view"> 热门推荐 ...

  3. 圣诞快乐 - Splashtop 2020 年回顾及未来展望

    ​ 我们很高兴 Splashtop 的远程访问解决方案能够在这个充满挑战的时期为全球的组织和教育机构提供帮助. 实际上,2020 年 Splashtop 的每日使用量增加了400%!不仅如此,我们还增 ...

  4. 字节面试:说说Java中的锁机制?

    Java 中的锁(Locking)机制主要是为了解决多线程环境下,对共享资源并发访问时的同步和互斥控制,以确保共享资源的安全访问. 锁的作用主要体现在以下几个方面: 互斥访问:确保在任何时刻,只有一个 ...

  5. 密码学—凯撒密码Python程序

    文章目录 凯撒密码来源 加密算法 解密算法 凯撒密码来源 古典密码,且属于单表加密 凯撒密码又称恺撒变换.变换加密,凯撒是当时罗马共和时期恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系.(当然 ...

  6. C语言:冒泡排序---详细解释

    //冒泡排序数字,仅仅适用于数组无序的时候,若有序则不能使用冒号排序     例如: 数字组:5,54,64,98,47     /*     1: 54,64,98,47,5     4次     ...

  7. 导入使用es

    from django.shortcuts import render, HttpResponsefrom elasticsearch import Elasticsearchfrom elastic ...

  8. mysql 命令行安装方式

    一:下载 先到 mysql 官方网站下载:https://dev.mysql.com/downloads/mysql/ 点击直接下载: 解压到目录:D:\mysql-8.0.19-winx64  如图 ...

  9. C# 【思路】分享 构造可进行单元测试的波形数据

    需要单元测试自己写的识别特殊波峰的算法,所以必须构造波形数据. 一开始是自己在控件上手绘波形,虽然这种方便,但是能绘制的点太少,每次手画显得麻烦. 过后,又采用随机数构造波峰,这种虽说能构造很多点,产 ...

  10. HTML——input标签

    很多表单元素都是由一个个的 input 元素组成的.它是自闭合标签,根据其 type 属性值的不同分为很多种,例如单行文本框.密码框.单选按钮.复选框.隐藏域.文件上传域.普通按钮.提交按钮以及重置按 ...