ubuntu eclipse启动卡死,脚本释放内存

本文介绍了解决Ubuntu系统中Eclipse启动慢及运行卡顿的问题,包括清理非正常关闭产生的临时文件、调整Eclipse内存配置、编写并定时执行内存释放脚本的方法。

ubuntu下eclipse启动卡死,运行有时候也卡机,很是苦恼,搜集相关资料,总结下:

一. 如非正常关闭,remove 你的工作目录下(workspace/.metadata/.plugins/org.eclipse.core.resources/)的 .snap 文件

二. 修改内存大小:eclipse安装目录下的eclipse.ini文件

-Xms256m:虚拟机占用系统的最小内存

-Xmx1024m:虚拟机占用系统的最大内存

三. 写脚本释放内存 

     1. 写内存释放脚本 freeMemory.sh (home/vicky/freeMemory.sh)记得加上执行权限。

#!/bin/bash
free -m |grep -i mem |awk '{if($4 < 300){ printf("3") > "/proc/sys/vm/drop_caches"}}';

        里面的300表示内存低于300M时开始释放内存

    2. 写入任务计划

sudo crontab -e

         写入任务

*/05 * * * * /home/vicky/freeMemory.sh
         05表示每5分钟执行一次命令

         保存退出即可。

    3. 查看任务:

sudo crontab -l
ps aux|grep cron


四:crontab 的用法

       cron是一个Linux下的后台进程,用来定期的执行一些任务。

      想要让cron执行你指定的任务,首先就要编辑crontab文件。crontab是一个文本文件,用来存放你要运行的命令。你可以执行以下命令

  1. sudo crontab -e  

      来打开你的用户所属的crontab文件。第一次用这个命令,会让你选择文本编辑器,我选的是vim。选定的编辑器也可以使用

  1. select-editor  

      命令来更改。

      打开后的crontab文件类似这种样子:

  1. # m h  dom mon dow   command  
  2. */2 * * * * date >> ~/time.log  

       第二行是我为了测试写的一个定期任务,它的意思是,每隔两分钟就执行 date >> ~/time.log 命令(记录当前时间到time.log文件)。你可以把它加        入你的crontab中,然后保存退出。

       保存了crontab之后,我们还需要重启cron来应用这个计划任务。使用以下命令:

  1. sudo service cron restart  

        下面稍微解释下crontab中每行的含义。crontab中的每一行代表一个定期执行的任务,分为6个部分。前5个部分表示何时执行命令,最后一个部分         表示执行的命令。每个部分以空格分隔,除了最后一个部分(命令)可以在内部使用空格之外,其他部分都不能使用空格。前5个部分分别代表:         分钟,小时,天,月,星期,每个部分的取值范围如下:

        分钟          0 - 59

        小时          0 - 23

        天              1 - 31

        月              1 - 12

        星期          0 - 6       0表示星期天

       除了这些固定值外,还可以配合星号(*),逗号(,),和斜线(/)来表示一些其他的含义:

      星号          表示任意值,比如在小时部分填写 * 代表任意小时(每小时)

      逗号          可以允许在一个部分中填写多个值,比如在分钟部分填写 1,3 表示一分钟或三分钟

      斜线          一般配合 * 使用,代表每隔多长时间,比如在小时部分填写 */2 代表每隔两分钟。所以 */1 和 * 没有区别

                       */2 可以看成是能被2整除的任意值。

      以下是一些例子(省略了命令部分):

  1. * * * * *                  # 每隔一分钟执行一次任务  
  2. 0 * * * *                  # 每小时的0点执行一次任务,比如6:0010:00  
  3. 6,10 * 2 * *            # 每个月2号,每小时的6分和10分执行一次任务  
  4. */3,*/5 * * * *          # 每隔3分钟或5分钟执行一次任务,比如10:0310:0510:06  

<think> 我们正在处理一个配置问题,具体是关于在配置过程中遇到的一个名为“Start order of the secure storage manager plugin (SAH_AMX_SECSTORAGE_MANAGER_ORDER) [01] (NEW)”的选项住的情况。根据用户描述,在配置过程中这个选项似乎停滞了,无法继续。 由于用户之前的报错是关于配置不同步(WARNING: your configuration is out of sync)的,而现在遇到的是配置过程中某个特定选项住,因此我们需要分析可能的原因: 可能的原因: 1. 配置工具(如 menuconfig)在这个选项上等待用户输入,但用户没有注意到(比如输入框没有焦点,或者提示信息被忽略)。 2. 该选项有依赖关系未满足,导致配置工具在等待依赖项的处理,但出现了阻塞。 3. 配置工具本身的bug,导致在特定选项上卡死。 4. 环境问题,如终端不兼容、键盘输入未被正确捕获等。 用户没有提供具体的配置工具名称,但根据之前的上下文(make menuconfig, oldconfig等),我们推测是使用类似Linux内核的menuconfig(基于ncurses的文本界面)或类似OpenWrt的配置工具。 解决步骤: 1. **确认住现象**:首先,用户需要确认是否真的住。有时,配置工具可能在等待用户输入,而界面没有明显提示(尤其是数字输入)。尝试输入一个数字(比如01)然后按回车。因为选项后面有`[01]`,表示当前值是01,并且`(NEW)`表示这是一个新选项,需要用户确认。 2. **检查依赖**:如果输入后没有反应,可能是依赖问题。查看该选项的依赖(通常可以通过方向键移动到该选项,按'?'查看帮助)。但此时如果已经住,可能无法进行此操作。 3. **尝试使用默认值**:在配置过程中,如果遇到需要输入的地方,直接按回车通常表示接受默认值(即中括号内的值,这里是01)。所以,如果在这个选项,尝试按回车键。 4. **使用非交互模式**:如果交互式配置工具(menuconfig)住,可以尝试改用非交互方式: - 使用`make oldconfig`:这个命令会读取已有的配置,对于新选项,它会直接在终端中逐个询问,用户可以在终端中输入值(01)然后回车。 - 使用`make defconfig`:使用默认配置,但会覆盖自定义设置。 - 使用`make config`:纯文本的逐项配置,但同样可能在同一个地方。 5. **手动编辑配置文件**:如果上述方法都无效,可以尝试直接编辑配置文件(通常是`.config`文件)来设置该选项的值。 - 打开项目根目录下的`.config`文件(注意是隐藏文件)。 - 查找选项名(SAH_AMX_SECSTORAGE_MANAGER_ORDER),如果不存在,则添加一行: ``` SAH_AMX_SECSTORAGE_MANAGER_ORDER=01 ``` - 保存后,再运行`make oldconfig`或`make menuconfig`,此时应该不会住,因为该选项已经配置。 6. **环境问题**:如果是在远程登录(如SSH)或某些终端下,可能出现了终端不兼容的情况。尝试使用不同的终端(比如从图形界面切换到纯文本终端,或者换用不同的SSH客户端)。 7. **升级或修复工具**:如果确认是工具bug,尝试更新软件源或配置工具到最新版本。 8. **查看日志**:如果配置工具产生日志,可以查看是否有错误信息。 由于用户提供的引用中并没有直接相关的信息,我们根据一般经验给出上述建议。 但是,在引用[1]中提到了环境变量配置,引用[2]提到eclipse+hadoop配置,引用[3]是前端代码,引用[4]是博主介绍,引用[5]是eslint配置,均与当前问题无关。因此,我们只能基于配置工具的一般行为进行解答。 总结步骤: 1. 尝试按回车键接受默认值01。 2. 如果不行,尝试输入01然后回车。 3. 如果仍然住,尝试切换到其他终端或使用非交互模式(如`make oldconfig`)。 4. 手动编辑`.config`文件,添加该选项的值。 5. 如果手动编辑后运行`make oldconfig`,让其他选项自动更新。 注意:在手动编辑配置文件后,最好运行`make oldconfig`来同步其他配置。 如果用户能提供更多上下文(如使用的具体是什么配置,是Linux内核还是其他项目),可以更精确地帮助解决问题。 相关问题: 1. 如何手动编辑Linux内核的.config文件? 2. 在menuconfig中如何查看选项的依赖关系? 3. 如何解决终端与配置工具不兼容的问题? 4. 配置工具在某个选项上住是否可能是由于硬件问题? </think> ### 解决配置在 `SAH_AMX_SECSTORAGE_MANAGER_ORDER` 选项的问题 当配置过程在 **Start order of the secure storage manager plugin (SAH_AMX_SECSTORAGE_MANAGER_ORDER) [01] (NEW)** 选项住时,通常是由配置工具交互异常或环境问题导致。以下是逐步解决方案: --- ### 解决方法 #### 1. **尝试默认输入值** - 该选项要求输入**插件启动顺序编号**(默认 `01`)。直接按回车键接受默认值: ```bash [Press Enter] # 使用默认值01 ``` - 若界面无响应,尝试输入 `01` 后按回车。 #### 2. **检查终端兼容性** - 配置工具(如 `menuconfig`)依赖终端功能。验证终端是否支持 ncurses: ```bash echo $TERM # 应显示 xterm-256color, linux 等 ``` - 若不支持: - 切换终端:`export TERM=xterm` - 安装依赖(Ubuntu): ```bash sudo apt install libncurses5-dev libncursesw5-dev ``` #### 3. **绕过交互式配置** 直接修改配置文件避免住: 1. 在项目根目录找到 `.config` 文件 2. 添加配置项: ```ini SAH_AMX_SECSTORAGE_MANAGER_ORDER=01 ``` 3. 保存后运行同步命令: ```bash make oldconfig # 自动应用配置 ``` #### 4. **重置配置环境** 若持续住,可能是配置损坏: ```bash make clean # 清理临时文件 make defconfig # 重置为默认配置 make menuconfig # 重新配置 ``` #### 5. **验证环境变量** 确保关键路径正确(参考引用[1]的思路[^1]): ```bash echo $PATH # 检查工具路径是否包含 export PATH=$PATH:/path/to/config_tools ``` --- ### 根本原因分析 1. **交互阻塞** 配置工具在等待输入时,可能因终端不兼容或输入焦点丢失而假死。 2. **配置冲突** 插件启动顺序依赖其他配置项(如安全模块状态),依赖未满足时可能住[^5]。 3. **环境异常** 缺少 ncurses 库或 `$TERM` 设置错误导致渲染失败(类似引用[2]的配置依赖问题[^2])。 --- ### 预防措施 - 使用脚本自动化配置: ```bash echo "SAH_AMX_SECSTORAGE_MANAGER_ORDER=01" >> .config make oldconfig -s # 静默模式 ``` - 优先使用非交互式命令: ```bash make oldconfig # 替代 make menuconfig ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值