FreeBSD Core Team áĄáá˝á˛áˇáááşáá áşáŚá¸ááźá áşááźáŽá¸ pkg package manager áá˛áˇ ááąá¸ááŹá¸áá°ááźá áşáá˛áˇ Baptiste Daroussin áᏠFreeBSD áĄáá˝ááş system manager áĄáá áşáá áşááŻááźá áşáá˛áˇ rcd ááᯠááŽáá˝ááşááąááŤáááşá rcd system manager ááᯠ/etc/rc áĄá áŹá¸ init process áááą invoke ááŻááşááźáŽá¸á service configuration files (/etc/rcd.d/*.ucl) ááᯠáááşááŤáááşá dependency tree áá áşáᯠáááşááąáŹááşááźáŽá¸ ááźá áşáááŻááşáá˛áˇáĄááŤáááŻááşá¸ service áá˝áąááᯠparallel áá˛áˇ á áááşááŤáááşá ááźáŽá¸áááş service áá˝áąááᯠá áąáŹááˇáşááźááˇáşááźáŽá¸ áááŻáĄááşáááş restart ááŻááşááŤáááşá
ááąáŹááşááśááŻááşáááşá¸á ááşáážááˇáş áááşááąáŹááşáážáŻááťáŹá¸ááźááˇáş ááŻááşááąáŹááşáážáŻááťáŹá¸ááᯠááááşá¸ááťáŻááşááźááşá¸ááᯠUNIX socket áááŻáˇ command ááťáŹá¸ áááŻááşáááŻááşááąá¸áááŻáˇááźááşá¸ áááŻáˇáááŻááş rctl command-line utility ááᯠáĄááŻáśá¸ááźáŻááźááşá¸ááźááˇáş ááŻááşááąáŹááşáááŻááşáááşá áááşááąáŹááşáážáŻ parameter ááťáŹá¸ááŤáážáááąáŹ unit áááŻááşááťáŹá¸ááᯠnginx á format áážááˇáşáááşáá°ááąáŹ UCL áá˝ááş format ááŻááşááŹá¸ááźáŽá¸ JSON ááž áážáŹá¸áá°ááŹá¸ááąáŹ element ááťáŹá¸ááźááˇáş configuration áááŻááşááťáŹá¸ááᯠbind ááŻááşáᏠáĄáááŻáĄááťáąáŹááş ááŻááşááąáŹááşááźááşá¸ááᯠáááŻá¸áážááşá¸á áąáááşá ááŻáśáážááş unit áááŻááşááťáŹá¸á template ááťáŹá¸ááᯠáááşááŽá¸áááŻááşááźáŽá¸ Lua áá˝ááş built-in handler ááťáŹá¸ááᯠááąá¸ááŹá¸áááŻááşáááşá nginx á áááşáááşáĄáá˝ááş unit áááŻááşá áĽáááŹ- name = "nginx"; description = "Nginx HTTP Server"; type = "simple"; command = "/usr/local/sbin/nginx"; command_args = "-g 'daemon off;'"; provides = ["nginx", "http"]; requires = ["NETWORKING", "sshd"]; restart { policy = "always"; max_retries = 10; delay = 2000; backoff = "linear"; } process { user = "www"; group = "www"; cpuset = "0-3"; } rctl { memoryuse = { action = "deny"; amount = "2g"; }; pcpu = { action = "throttle"; amount = "80"; }; }
PID áááŻááşááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻáááˇáşáĄá áŹá¸á áááşáááşááąááąáŹ ááŻááşáááşá¸á ááşááťáŹá¸á ááŻááşááąáŹááşááťááşááᯠááźáąááŹááśááźááşá¸ááᯠpdfork() system call ááž ááźááşááąá¸ááąáŹ descriptors ááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻá ááŻááşááąáŹááşáááşá network socket ááᯠáááşááąáŹááşáááˇáşáĄááŤáá˝ááşáᏠáááşááąáŹááşáážáŻááťáŹá¸ááᯠáĄáááşáá˝ááşá¸áááş ááśáˇáááŻá¸áážáŻáážáááźáŽá¸ áážááşááŹááşáááşá¸ááąáŹ áĄááźáąáĄááąááťáŹá¸áá˝ááş áĄááąá¸ááźáŽá¸ááąáŹ áááşááąáŹááşáážáŻááťáŹá¸ááᯠáĄáááşá¸áĄááťááş áááşá á˛ááźááşá¸ááž ááŹáá˝ááşáááŻááşá á˝ááşá¸ áážááááşá rcd background process version ááᯠstate áááŻáśá¸áážáŻáśá¸áᲠááťááşááťááşá¸ áĄááşááááşááŻááşáááŻááşáááşá
rctl ááᯠáááşááąáŹááşáážáŻáá áşááŻáĄáá˝ááş ááážááááŻááşááąáŹ áĄáááşá¸áĄááźá áşááťáŹá¸ááᯠáááˇáşáááşáááşáĄááŻáśá¸ááźáŻááźáŽá¸ áááşááąáŹááşáážáŻááťáŹá¸ááᯠááŽá¸ááźáŹá¸áá˝á˛ááŹá¸áááşáĄáá˝ááş ááąáŹááşááťáąáŹááşáááşááŹá¸ááąáŹáááşáááşá¸ááťááşááťáŹá¸áá˝ááş ááŻááşááąáŹááşáááŻááşáááşá UNIX ááááşá¸ááťáŻááşáážáŻ socket áááŻáˇ áááşááąáŹááşáá˝ááˇáşááᯠáááşááąáŹááşáážáŻáá áşááŻááťááşá¸á áŽáĄáá˝ááş ááźááşáááşáááşáážááşáááŻááşáááşá Sleep mode ááᯠááśáˇáááŻá¸ááąá¸áááşá
á áá áşáááşááąááťáŹáááş áááşáážá rc.d áááşááąáŹááşáážáŻ áĄá ááşáááŻááşá áááşáážáŻá áá áşáážááˇáş áĄááźááˇáşáĄá ááąáŹááşááźááşáááŻááşáááşááŽááźáŽá¸ áááşáážá rc.d script ááťáŹá¸áážááˇáş configuration áááŻááşááťáŹá¸ááᯠááźáŻááźááşáá˝ááşá¸ááśááźááşá¸ááážááᲠáĄááŻáśá¸ááźáŻáááŻááşááŤáááşá ááŻááşááąáŹááşááąááąáŹá áá áşáá˝ááş rcd ááᯠáááˇáşáá˝ááşá¸áááŻááşááŻáśááźááˇáş reboot ááŻááşááźáŽá¸ááąáŹááş parallelized service startup ááźáąáŹááˇáş boot áĄááťáááşááťáąáŹáˇáááşá¸áá˝áŹá¸ááźááşá¸áážáĄá áĄááŹáĄáŹá¸ááŻáśá¸áááş ááááşáĄáááŻááşá¸ áááşáááşááŻááşááąáŹááşááąáááşááźá áşáááşá á¤áááŻááşáááşááŽáážáŻáááş á áá áşááťáŹá¸ááᯠrcd áááŻáˇ áá˝ážáąáˇááźáąáŹááşá¸ááźááşá¸ááᯠáááŻá¸áážááşá¸á áąááźáŽá¸ áááşáážá rc.d script ááťáŹá¸ááᯠunit file format áááŻáˇ áááźááşá¸ááźááşá¸ááźáąáŹááşá¸áá˛áááŻááşá áąáááşááźá áşáááşá
rc.d áážááˇáş áá˝á˛áááşáĄááŻáśá¸ááźáŻáááŻááşá
áąáááşáĄáá˝ááş áĄáá°á¸ "legacy" unit áĄááťááŻá¸áĄá
áŹá¸ááᯠááśáˇáááŻá¸ááąá¸ááŤáááşá Rcd áááş /etc/rc.d/ áážááˇáş /usr/local/etc/rc.d/ áááŻáˇá áĄááźáąáŹááşá¸áĄááŹááťáŹá¸ááᯠá
áááşáááşááźáŽá¸ script ááťáŹá¸áá˝ááş PROVIDE/REQUIRE/BEFORE/KEYWORD headers ááťáŹá¸ááᯠparse ááŻááşáᏠrc.conf setting ááťáŹá¸ááᯠáááşáᏠscript execution state ááᯠááŻáśá¸ááźááşááźáŽá¸ááąáŹááş script áá
áşááŻááťááşá¸á
áŽááᯠlegacy virtual unit áĄááźá
áş ááŻááşááąáŹááşááŤáááşá áááŻáá˛áˇáááŻáˇááąáŹ virtual units ááťáŹá¸ááᯠá
áŽááśáááˇáşáá˝á˛áááş rcctl command áááŻáĄááŻáśá¸ááźáŻáááˇáşáĄá፠ááŻááşááąáŹááşááťááşááťáŹá¸ááᯠlegacy format áááŻáˇ ááŹááŹááźááşáááŻááŤáááşá áĽáááŹáĄáŹá¸ááźááˇáş "rcctl reload sshd" ááᯠááŻááşááąáŹááşááźááşá¸áááş "/etc/rc.d/sshd reload" ááᯠááŻááşááąáŹááşááŤááááˇáşáááşá
source: opennet.ru
