{"id":13897978,"url":"https://github.com/kisslinux/init","last_synced_at":"2025-07-17T15:31:25.320Z","repository":{"id":56113422,"uuid":"192879334","full_name":"kisslinux/init","owner":"kisslinux","description":"KISS Linux - Init Framework","archived":true,"fork":false,"pushed_at":"2021-09-05T10:51:19.000Z","size":233,"stargazers_count":90,"open_issues_count":0,"forks_count":26,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-08-07T18:44:56.941Z","etag":null,"topics":["init","init-system","initscript","posix"],"latest_commit_sha":null,"homepage":"https://kisslinux.github.io","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kisslinux.png","metadata":{"files":{"readme":"README","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}},"created_at":"2019-06-20T08:18:59.000Z","updated_at":"2024-07-12T19:51:48.000Z","dependencies_parsed_at":"2022-08-15T13:20:10.793Z","dependency_job_id":null,"html_url":"https://github.com/kisslinux/init","commit_stats":null,"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kisslinux%2Finit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kisslinux%2Finit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kisslinux%2Finit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kisslinux%2Finit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kisslinux","download_url":"https://codeload.github.com/kisslinux/init/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226274613,"owners_count":17598848,"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":["init","init-system","initscript","posix"],"created_at":"2024-08-06T18:03:59.254Z","updated_at":"2024-11-25T04:30:28.526Z","avatar_url":"https://github.com/kisslinux.png","language":"Shell","readme":"Init Framework\n________________________________________________________________________________\n\nKISS Linux's portable init framework for use with any init, service manager or\ndevice manager. It handles the boot (and shutdown) process and provides a\ngeneric interface for controlling it.\n\nThe below components have been tested and work. Other software may work out of\nthe box as well, it just has not been tested. Send bug reports and support on\nthis side will be added where needed.\n\nTested init systems      Tested service managers      Tested device managers\n\n* busybox init           * busybox runit              * mdev\n* s6 (s6-svscan)         * s6                         * mdevd\n* sinit                  * runit                      * udevd\n* runit                  * no service manager         * no device manager\n* shinit\n\nNOTE: Any combination of the above can be used. If not using a service manager,\n      ensure that you execute at least one getty for login to work. Also, some\n      init systems handle what baseinit does internally so support for them\n      here makes little sense.\n\n\n[000] Index\n________________________________________________________________________________\n\n* /etc/rc.conf ........................................................... [001]\n  * CONFIG_INIT .......................................................... [002]\n  * CONFIG_SERVICE ....................................................... [003]\n  * CONFIG_SERVICE_DIR (runit and s6 only) ............................... [004]\n  * CONFIG_DEV ........................................................... [005]\n* /etc/rc.d/ ............................................................. [006]\n  * /etc/rc.d/*.pre.boot ................................................. [007]\n  * /etc/rc.d/*.post.boot ................................................ [008]\n  * /etc/rc.d/*.pre.shutdown ............................................. [009]\n  * /etc/rc.d/*.post.shutdown ............................................ [010]\n* Utilities .............................................................. [011]\n* How To Package An Init ................................................. [012]\n* Further Reading ........................................................ [013]\n\n\n[001] /etc/rc.conf\n________________________________________________________________________________\n\nThis file stores configuration for the boot/shutdown process and any scripts in\n/etc/rc.d. [006] If the file does not exist, create it and if any options do not\nexist, create them. If the options are unset (or not present) they take their\ndefault values.\n\n\n--[002] CONFIG_INIT ------------------------------------------------------------\n\n  The init to assume is in use. This setting does not enable the init but merely\n  tells baseinit which one is in use (so it can handle things accordingly).\n  Valid values are currently 'busybox' (default), 's6', 'sinit', 'runit',\n  'shinit'.\n\n  +----------------------------------------------------------------------------+\n  |                                                                            |\n  |  CONFIG_INIT=busybox                                                       |\n  |                                                                            |\n  +----------------------------------------------------------------------------+\n\n\n--[003] CONFIG_SERVICE ---------------------------------------------------------\n\n  The service manager to execute at the end of the boot process. Valid values\n  are currently: 'runit' (default), s6, none. If 'none' is used, baseinit will\n  not start a service manager and it is up to the user to spawn gettys, etc.\n\n  +----------------------------------------------------------------------------+\n  |                                                                            |\n  |  CONFIG_SERVICE=runit                                                      |\n  |                                                                            |\n  +----------------------------------------------------------------------------+\n\n\n--[004] CONFIG_SERVICE_DIR (runit and s6 only) ---------------------------------\n\n  The service directory to use.\n\n  +----------------------------------------------------------------------------+\n  |                                                                            |\n  |  CONVIG_SERVICE_DIR=/var/service                                           |\n  |                                                                            |\n  +----------------------------------------------------------------------------+\n\n\n--[005] CONFIG_DEV -------------------------------------------------------------\n\n  The device manager to run during the init process. This is killed once boot is\n  complete for a supervised version to take its place. Valid values are\n  currently 'mdevd', 'mdev' (default) or 'udevd'.\n\n  +----------------------------------------------------------------------------+\n  |                                                                            |\n  |  CONFIG_DEV=mdev                                                           |\n  |                                                                            |\n  +----------------------------------------------------------------------------+\n\n\n[006] /etc/rc.d/\n________________________________________________________________________________\n\nShell scripts are sourced from this directory at different stages in the boot\nprocess based on file name. Any configuration made here will run under all\ninits and service managers which use baseinit.\n\n\n--[007] /etc/rc.d/*.pre.boot ---------------------------------------------------\n\n  Scripts in /etc/rc.d ending in .pre.boot are run at the start of the boot\n  process but after pseudo filesystems are mounted (/sys, /dev, etc).\n\n\n--[008] /etc/rc.d/*.post.boot --------------------------------------------------\n\n  Scripts in /etc/rc.d ending in .boot are run at the end of the boot process\n  but before baseinit execs into CONFIG_SERVICE.\n\n\n--[009] /etc/rc.d/*.pre.shutdown -----------------------------------------------\n\n  Scripts in /etc/rc.d ending in .pre.shutdown are run at the start of the\n  shutdown and reboot process. If a script needs to run only on one mode, it can\n  discern the shutdown type by checking the basename of $0.\n\n\n--[010] /etc/rc.d/*.post.shutdown ----------------------------------------------\n\n  Scripts in /etc/rc.d ending in .post.shutdown are run at the end of the\n  shutdown and reboot process. If a script needs to run only on one mode, it can\n  discern the shutdown type by checking the basename of $0.\n\n\n[011] Utilities\n________________________________________________________________________________\n\nThe baseinit package provides two utilities. 'kpow' (signal reboot/shutdown to\nthe kernel) and 'respawn' (rerun command when it exits/dies).\n\nThese are only interesting to those looking to make larger modifications via\n/etc/rc.d. The respawn command should allow those not using a service manager\nto more easily spawn some gettys via /etc/rc.d.\n\n\n[012] How To Package An Init\n________________________________________________________________________________\n\nTo package an init and have it use baseinit set it to run /usr/lib/init/rc.boot\nat power on, /usr/lib/init/rc.shutdown at shutdown and /usr/lib/init/rc.reboot\nat reboot.\n\nThen, the package should provide /usr/bin/init, /usr/bin/poweroff and\n/usr/bin/reboot. This allows the alternatives system to be used and makes\nswapping between things easy.\n\nLast, if the init needs modifications made to baseinit open an issue here or\nopen a pull request. This is where CONFIG_INIT comes into play.\n\n\n[013] Further Reading\n________________________________________________________________________________\n\n- #/wiki/service-management\n- #/wiki/pkg/busybox\n- #/wiki/pkg/s6\n- #/wiki/pkg/sinit\n- #/wiki/pkg/baseinit\n\n","funding_links":[],"categories":["Shell"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkisslinux%2Finit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkisslinux%2Finit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkisslinux%2Finit/lists"}