{"id":27021343,"url":"https://github.com/oditynet/oomkiller","last_synced_at":"2025-04-04T19:50:07.509Z","repository":{"id":250837985,"uuid":"835656900","full_name":"oditynet/oomkiller","owner":"oditynet","description":"Simpler oom killer of bad process","archived":false,"fork":false,"pushed_at":"2025-02-10T08:13:13.000Z","size":58,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-10T09:24:23.564Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oditynet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-30T09:19:45.000Z","updated_at":"2025-02-10T08:13:16.000Z","dependencies_parsed_at":"2024-08-07T15:22:27.228Z","dependency_job_id":null,"html_url":"https://github.com/oditynet/oomkiller","commit_stats":null,"previous_names":["oditynet/oomkiller"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oditynet%2Foomkiller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oditynet%2Foomkiller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oditynet%2Foomkiller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oditynet%2Foomkiller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oditynet","download_url":"https://codeload.github.com/oditynet/oomkiller/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247241740,"owners_count":20907064,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-04T19:50:06.763Z","updated_at":"2025-04-04T19:50:07.444Z","avatar_url":"https://github.com/oditynet.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# oomkiller\nSimple oom killer of bad process :) \n\nFor analitics it is used cpu used (ver 0.2.1). (Nice for situation then oom_score = 0)\n\nScan mem every 100 ms and kill process on signal( -9 )\n\nprocess have nice -15\n\n```\ng++ oomkiller.cpp -o oomkiller\nsudo cp oomkiller /usr/bin\nsudo cp oomkilld.service /usr/lib/systemd/system/\nsudo systemctl daemon-reload\nsudo systemctl enable oomkilld.service\nsudo systemctl start oomkilld.service\n```\n\nLog for example:\n```\n 12:25:08  odity@viva  ~/eclipse-workspace/argv  sudo systemctl status oomkilld.service\n● oomkilld.service - Simple OOM Daemon\n     Loaded: loaded (/usr/lib/systemd/system/oomkilld.service; enabled; preset: disabled)\n     Active: active (running) since Tue 2024-07-30 12:24:56 MSK; 12s ago\n Invocation: c0df0451b2b44ca39c190b49b58e3ca5\n       Docs: https://github.com/oditynet/oomkill\n   Main PID: 11575 (oomkiller)\n      Tasks: 1 (limit: 28622)\n     Memory: 1.8M (peak: 2M)\n        CPU: 43ms\n     CGroup: /system.slice/oomkilld.service\n             └─11575 /usr/bin/oomkiller\n\nиюл 30 12:24:56 viva systemd[1]: Started Simple OOM Daemon.\nиюл 30 12:25:05 viva oomkiller[11575]: Alarm: memory 595384Mb\nиюл 30 12:25:05 viva oomkiller[11575]: Potential: 320 -250 500 10840\nиюл 30 12:25:05 viva oomkiller[11575]: Potential: 2643 0 666 1263\nиюл 30 12:25:05 viva oomkiller[11575]: Potential: 2647 0 667 20723\nиюл 30 12:25:05 viva oomkiller[11575]: Potential: 3080 0 673 147885\nиюл 30 12:25:05 viva oomkiller[11575]: Potential: 11602 0 879 4703448\nиюл 30 12:25:05 viva oomkiller[11575]: Error read dir: Success\nиюл 30 12:25:05 viva oomkiller[11575]: Kill process (mem) of pid 11602\n```\n\nADD param -p : calc procent used CPU from all processes\nFYI\n```\nPROCESS_STAT=($(sed -E 's/\\([^)]+\\)/X/' \"/proc/$PID/stat\"))\nPROCESS_UTIME=${PROCESS_STAT[13]}\nPROCESS_STIME=${PROCESS_STAT[14]}\nPROCESS_STARTTIME=${PROCESS_STAT[21]}\nSYSTEM_UPTIME_SEC=$(tr . ' ' \u003c/proc/uptime | awk '{print $1}')\n\nCLK_TCK=$(getconf CLK_TCK)\n\nlet PROCESS_UTIME_SEC=\"$PROCESS_UTIME / $CLK_TCK\"\nlet PROCESS_STIME_SEC=\"$PROCESS_STIME / $CLK_TCK\"\nlet PROCESS_STARTTIME_SEC=\"$PROCESS_STARTTIME / $CLK_TCK\"\n\nlet PROCESS_ELAPSED_SEC=\"$SYSTEM_UPTIME_SEC - $PROCESS_STARTTIME_SEC\"\nlet PROCESS_USAGE_SEC=\"$PROCESS_UTIME_SEC + $PROCESS_STIME_SEC\"\nlet PROCESS_USAGE=\"$PROCESS_USAGE_SEC * 100 / $PROCESS_ELAPSED_SEC\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foditynet%2Foomkiller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foditynet%2Foomkiller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foditynet%2Foomkiller/lists"}