{"id":27968520,"url":"https://github.com/clearlinux/clr-service-restart","last_synced_at":"2026-04-02T02:10:10.534Z","repository":{"id":143127166,"uuid":"117718287","full_name":"clearlinux/clr-service-restart","owner":"clearlinux","description":"Automatically restart system services that need restarting after software updates.","archived":false,"fork":false,"pushed_at":"2025-01-08T22:57:02.000Z","size":31,"stargazers_count":9,"open_issues_count":5,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-19T22:00:06.449Z","etag":null,"topics":["software-update","systemd","systemd-service"],"latest_commit_sha":null,"homepage":null,"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/clearlinux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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,"zenodo":null}},"created_at":"2018-01-16T17:41:58.000Z","updated_at":"2025-01-08T22:57:06.000Z","dependencies_parsed_at":"2025-05-07T21:04:08.662Z","dependency_job_id":"4d3dc217-c7b8-407f-acd5-161767dfde64","html_url":"https://github.com/clearlinux/clr-service-restart","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/clearlinux/clr-service-restart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clearlinux%2Fclr-service-restart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clearlinux%2Fclr-service-restart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clearlinux%2Fclr-service-restart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clearlinux%2Fclr-service-restart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clearlinux","download_url":"https://codeload.github.com/clearlinux/clr-service-restart/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clearlinux%2Fclr-service-restart/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31294416,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T01:43:37.129Z","status":"online","status_checked_at":"2026-04-02T02:00:08.535Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["software-update","systemd","systemd-service"],"created_at":"2025-05-07T21:04:00.580Z","updated_at":"2026-04-02T02:10:10.523Z","avatar_url":"https://github.com/clearlinux.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"## DISCONTINUATION OF PROJECT. \n\nThis project will no longer be maintained by Intel. \n\nIntel will not provide or guarantee development of or support for this project, including but not limited to, maintenance, bug fixes, new releases or updates. Patches to this project are no longer accepted by Intel. If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the community, please create your own fork of the project.\n\nContact: webadmin@linux.intel.com  \n\n## clr-service-restart\n\nA program that restarts systemd services that are using software\ncomponents that have been updated.\n\n\n## How it works\n\nThe Linux kernel maintains information about running processes in the\n`procfs` filesystem. This information can be used to identify processes\nthat are using resources that are no longer physically present on\nthe file system, such as when a binary or system library is updated.\n\nAny software update causes the kernel to see that a reference to a\nbinary or a reference to a library is no longer corresponding with the\nactual current version of the library or binary on the filesystem. If\nthis happens, the kernel will mark the `procfs` entries for those\nreferences as `(deleted)`. Specifically the `exe` symlink will get\nmarked in this way if the binary is updated, and the `maps` file will\nget updated in this way if a library component is updated.\n\nUsing these references, we now know which programs are currently being\nexecuted that are holding references to outdated libraries or binaries,\nand therefore should be restarted.\n\nHowever, we do not want to restart programs that are not part of a\nsystem unit, or in some other way are not part of the system domain. In\norder to avoid considering all processes running for the purpose of\nrestarting them, we restrict consideration to only those processes\nthat are listed as active `tasks` in the systemd `system.slice`\nhierarchy maintained under `/sys/fs/cgroup/systemd/`. This hierarchy\nonly contains units (and therefore tasks) in the system domain and\nexcludes user units or user programs.\n\n\n## Configuration\n\nIt's extremely risky to restart all units unconditionally since some\nunits may require specific ordering, interaction or other factors\nto be considered. By default, this program will not restart any\nservice automatically, and will only consider units that have been\nexplicitly marked as `allowed` by either the local administrator\nor the distribution. This is done through maintaining symlinks in\n`/usr/share/clr-service-restart` and `/etc/clr-service-restart`. If a\nvalid symlink is found in these folders, the unit will be considered\nfor restarting. If a symlink is found in `/etc/clr-service-restart`\nwith the name of a unit pointing to `/dev/null` it will be\nomitted for consideration and not be restarted. Links in the\n`/etc/clr-service-restart` location take precedence over those in\n`/usr/share/clr-service-restart`. Links to `/dev/null` in the\n`/usr/share/clr-service-restart` location are invalid.\n\n\n## Commands\n\nThese symlinks can be manipulated by the local administrator with the\n`clr-service-restart` program, which understands the following 3\ncommands:\n\n * `allow \"foo.service\"`:\n\n   Mark \"foo.service\" as restartable.\n\n * `disallow \"bar.service\"`:\n\n   Mark \"bar.service\" as not restartable.\n\n * `default \"baz.service\"`:\n\n   Remove local preferences and revert to the distribution default\n   for \"baz.service\".\n\nIf `clr-service-restart` is executed without any commands, it will\nrestart all services that are marked `allow` for restart.\n\n\n## Options\n\nThe following options are understood. These options may not be used\ntogether with the `allow`, `disallow` and `default` commands.\n\n * `-n`:\n\n   Don't actually perform any restarts, just show what would happen\n   if the program would execute normally. This makes the program\n   more verbose.\n\n * `-a`:\n\n   Consider all system units. With this option, all system units that\n   are running will be considered for restarting. This should normally\n   only be done interactively, and never in an automated fashion.\n\n\n## Bugs\n\nPlease report bugs to: `dev@lists.clearlinux.org`\n\n\n## License\n\nCopyright © 2018 Intel Corporation\n\nAuthor: Auke-jan H. Kok `\u003cauke-jan.h.kok@intel.com\u003e`\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published\nby the Free Software Foundation, either version 3 of the License,\nor (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nGeneral Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclearlinux%2Fclr-service-restart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclearlinux%2Fclr-service-restart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclearlinux%2Fclr-service-restart/lists"}