Unity Launcher в Desktop Edition? [Дубликат]

Ничего не работало для меня !!

Итак, я написал сценарий для мониторинга использования памяти. Сначала попробуйте очистить кеш оперативной памяти, если потребление памяти увеличит порог. Вы можете настроить этот порог в скрипте. Если даже тогда потребление памяти не будет ниже порогового значения, оно начнет уничтожать процессы на единицу в порядке убывания объема памяти до тех пор, пока потребление памяти не будет ниже порогового значения. Я установил его по умолчанию 96%. Вы можете настроить его, изменив значение переменной RAM_USAGE_THRESHOLD в скрипте.

Я согласен с тем, что уничтожение процессов, которые потребляют высокую память, не является идеальным решением, но лучше убить ОДНОЕ приложение, а не потерять ВСЕ работу !! сценарий отправит вам уведомление на рабочем столе, если использование ОЗУ увеличит порог. Он также уведомит вас, если он убьет любой процесс.

#!/usr/bin/env python
import psutil, time
import tkinter as tk
from subprocess import Popen, PIPE
import tkinter
from tkinter import messagebox
root = tkinter.Tk()
root.withdraw()

RAM_USAGE_THRESHOLD = 96
MAX_NUM_PROCESS_KILL = 100

def main():
    if psutil.virtual_memory().percent >= RAM_USAGE_THRESHOLD:
        # Clear RAM cache
        mem_warn = "Memory usage critical: {}%\nClearing RAM Cache".\
            format(psutil.virtual_memory().percent)
        print(mem_warn)
        Popen("notify-send \"{}\"".format(mem_warn), shell=True)
        print("Clearing RAM Cache")
        print(Popen('echo 1 > /proc/sys/vm/drop_caches',
                    stdout=PIPE, stderr=PIPE,
                    shell=True).communicate())
        post_cache_mssg = "Memory usage after clearing RAM cache: {}%".format(
                            psutil.virtual_memory().percent)
        Popen("notify-send \"{}\"".format(post_cache_mssg), shell=True)
        print(post_cache_mssg)

        if psutil.virtual_memory().percent < RAM_USAGE_THRESHOLD:
            print("Clearing RAM cache saved the day")
            return
        # Kill top C{MAX_NUM_PROCESS_KILL} highest memory consuming processes.
        ps_killed_notify = ""
        for i, ps in enumerate(sorted(psutil.process_iter(),
                                      key=lambda x: x.memory_percent(),
                                      reverse=True)):
            # Do not kill root
            if ps.pid == 1:
                continue
            elif (i > MAX_NUM_PROCESS_KILL) or \
                    (psutil.virtual_memory().percent < RAM_USAGE_THRESHOLD):
                messagebox.showwarning('Killed proccess - save_hang',
                                       ps_killed_notify)
                Popen("notify-send \"{}\"".format(ps_killed_notify), shell=True)
                return
            else:
                try:
                    ps_killed_mssg = "Killed {} {} ({}) which was consuming {" \
                                     "} % memory (memory usage={})". \
                        format(i, ps.name(), ps.pid, ps.memory_percent(),
                               psutil.virtual_memory().percent)
                    ps.kill()
                    time.sleep(1)
                    ps_killed_mssg += "Current memory usage={}".\
                        format(psutil.virtual_memory().percent)
                    print(ps_killed_mssg)
                    ps_killed_notify += ps_killed_mssg + "\n"
                except Exception as err:
                    print("Error while killing {}: {}".format(ps.pid, err))
    else:
        print("Memory usage = " + str(psutil.virtual_memory().percent))
    root.update()


if __name__ == "__main__":
    while True:
        try:
            main()
        except Exception as err:
            print(err)
        time.sleep(1)

Сохраните код в файле say save_hang.py. Запустите скрипт как:

sudo python save_hang.py

Обратите внимание, что этот скрипт совместим только для Python 3 и требует установки пакета tkinter. вы можете установить его как:

sudo apt-get install python3-tk

Надеюсь, это поможет ...

1
задан 13 April 2017 в 15:25

1 ответ

Альтернативой док-станции является апплет dockbarx, убедитесь, что вы устанавливаете дополнительные темы, чтобы получить темы единства (при условии, что вы используете Ubuntu 10.10, 'apt-get install ubuntu-netbook')

Это PPA link: https://launchpad.net/~dockbar-main/+archive/ppa

Вы можете найти более полезную информацию о dockbarx: https://launchpad.net/~dockbar-main / + архив / ppa И обязательно ознакомьтесь с этим форумом форума Ubuntu: http://ubuntuforums.org/showthread.php?p=9968108

0
ответ дан 26 May 2018 в 00:58
  • 1
    apt-получение всей установки ubuntu-netbook действительно намного выше его потребностей. – Malabarba 26 October 2010 в 17:13

Другие вопросы по тегам:

Похожие вопросы: