āĻŦā§āϝāĻžāĻĒāĻāĻŋāϏā§āĻ āĻĻāĻžāϰā§āϏāĻŋāύ, āĻĢā§āϰāĻŋāĻŦāĻŋāĻāϏāĻĄāĻŋ āĻā§āϰ āĻāĻŋāĻŽā§āϰ āĻāĻāĻāύ āϏāĻĻāϏā§āϝ āĻāĻŦāĻ āĻĒāĻŋāĻā§āĻāĻŋ (pkg) āĻĒā§āϝāĻžāĻā§āĻ āĻŽā§āϝāĻžāύā§āĻāĻžāϰā§āϰ āϞā§āĻāĻ, āĻĢā§āϰāĻŋāĻŦāĻŋāĻāϏāĻĄāĻŋ-āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āύāϤā§āύ āϏāĻŋāϏā§āĻā§āĻŽ āĻŽā§āϝāĻžāύā§āĻāĻžāϰâāĻāϰāϏāĻŋāĻĄāĻŋ (rcd)âāϤā§āϰāĻŋ āĻāϰāĻā§āύāĨ¤ āĻāϰāϏāĻŋāĻĄāĻŋ āϏāĻŋāϏā§āĻā§āĻŽ āĻŽā§āϝāĻžāύā§āĻāĻžāϰāĻāĻŋ /etc/rc-āĻāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āĻāύāĻŋāĻ (init) āĻĒā§āϰāϏā§āϏ āĻĻā§āĻŦāĻžāϰāĻž āĻāĻžāϞ⧠āĻšāϝāĻŧ, āϏāĻžāϰā§āĻāĻŋāϏ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĢāĻžāĻāϞāĻā§āϞ⧠(/etc/rcd.d/*.ucl) āĻĒāĻĄāĻŧā§, āĻāĻāĻāĻŋ āĻĄāĻŋāĻĒā§āύā§āĻĄā§āύā§āϏāĻŋ āĻā§āϰāĻŋ āϤā§āϰāĻŋ āĻāϰ⧠āĻāĻŦāĻ āϝāĻāύāĻ āϏāĻŽā§āĻāĻŦ āϏāĻžāϰā§āĻāĻŋāϏāĻā§āϞā§āĻā§ āϏāĻŽāĻžāύā§āϤāϰāĻžāϞāĻāĻžāĻŦā§ āĻāĻžāϞ⧠āĻāϰā§āĨ¤ āĻāϰāĻĒāϰ āĻāĻāĻŋ āϏāĻžāϰā§āĻāĻŋāϏāĻā§āϞā§āĻā§ āĻĒāϰā§āϝāĻŦā§āĻā§āώāĻŖ āĻāϰ⧠āĻāĻŦāĻ āĻĒā§āϰāϝāĻŧā§āĻāύ⧠āϏā§āĻā§āϞā§āĻā§ āĻĒā§āύāϰāĻžāϝāĻŧ āĻāĻžāϞ⧠āĻāϰā§āĨ¤
āĻŦā§āϝāĻžāĻāĻā§āϰāĻžāĻāύā§āĻĄ āĻĒā§āϰāϏā§āϏ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻāĻŦāĻ āϏāĻžāϰā§āĻāĻŋāϏāĻā§āϞā§āϰ āϏāĻžāĻĨā§ āĻ āĻĒāĻžāϰā§āĻļāύ āϏāϰāĻžāϏāϰāĻŋ āĻāĻāĻāĻŋ UNIX āϏāĻā§āĻā§ āĻāĻŽāĻžāύā§āĻĄ āĻĒāĻžāĻ āĻŋāϝāĻŧā§ āĻ āĻĨāĻŦāĻž rctl āĻāĻŽāĻžāύā§āĻĄ-āϞāĻžāĻāύ āĻāĻāĻāĻŋāϞāĻŋāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ āϏāĻžāϰā§āĻāĻŋāϏ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāϏāĻš āĻāĻāύāĻŋāĻ āĻĢāĻžāĻāϞāĻā§āϞ⧠UCL-āĻ āĻĢāϰāĻŽā§āϝāĻžāĻ āĻāϰāĻž āĻšāϝāĻŧ, āϝāĻž nginx-āĻāϰ āĻĢāϰāĻŽā§āϝāĻžāĻā§āϰ āĻ āύā§āϰā§āĻĒ āĻāĻŦāĻ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ āĻĒā§āϰāϏā§āϏāĻŋāĻ āϏāĻšāĻ āĻāϰāĻžāϰ āĻāύā§āϝ JSON āĻĨā§āĻā§ āϧāĻžāϰ āĻāϰāĻž āĻāĻĒāĻžāĻĻāĻžāύ āĻĻāĻŋāϝāĻŧā§ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĢāĻžāĻāϞāĻā§āϞā§āĻā§ āĻŦāĻžāĻāύā§āĻĄ āĻāϰā§āĨ¤ āϏāĻžāϧāĻžāϰāĻŖ āĻāĻāύāĻŋāĻ āĻĢāĻžāĻāϞāĻā§āϞā§āϰ āĻā§āĻŽāĻĒā§āϞā§āĻ āϤā§āϰāĻŋ āĻāϰāĻž āĻāĻŦāĻ Lua-āϤ⧠āĻŦāĻŋāϞā§āĻ-āĻāύ āĻšā§āϝāĻžāύā§āĻĄāϞāĻžāϰ āϞā§āĻāĻž āϏāĻŽā§āĻāĻŦāĨ¤ nginx āĻļā§āϰ⧠āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻāĻāύāĻŋāĻ āĻĢāĻžāĻāϞā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖ: 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() āϏāĻŋāϏā§āĻā§āĻŽ āĻāϞ āĻĻā§āĻŦāĻžāϰāĻž āĻĢā§āϰāϤ āĻĻā§āĻāϝāĻŧāĻž āĻĄā§āϏāĻā§āϰāĻŋāĻĒā§āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāϞāĻŽāĻžāύ āĻĒā§āϰāϏā§āϏāĻā§āϞā§āϰ āĻāĻžāϰā§āϝāĻāϞāĻžāĻĒ āĻā§āϰā§āϝāĻžāĻ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āϏāĻā§āĻ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻž āĻšāϞā§āĻ āϏāĻžāϰā§āĻāĻŋāϏāĻā§āϞ⧠āϏāĻā§āϰāĻŋāϝāĻŧ āĻāϰāĻžāϰ āϏā§āĻŦāĻŋāϧāĻž āϰāϝāĻŧā§āĻā§ āĻāĻŦāĻ āĻŽā§āĻŽā§āϰāĻŋ āĻāĻŽ āĻĨāĻžāĻāĻžāϰ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϤ⧠āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āϏāĻžāϰā§āĻāĻŋāϏāĻā§āϞā§āĻā§ āĻā§āϰāĻĒā§āϰā§āĻŦāĻ āĻŦāύā§āϧ āĻšāĻāϝāĻŧāĻž āĻĨā§āĻā§ āϰāĻā§āώāĻž āĻāϰāĻžāϰ āϏāĻā§āώāĻŽāϤāĻžāĻ āĻāĻā§āĨ¤ āϏā§āĻā§āĻ āύāĻž āĻšāĻžāϰāĻŋāϝāĻŧā§āĻ rcd āĻŦā§āϝāĻžāĻāĻā§āϰāĻžāĻāύā§āĻĄ āĻĒā§āϰāϏā§āϏā§āϰ āĻāĻžāϰā§āϏāύ āϤāĻžā§āĻā§āώāĻŖāĻŋāĻāĻāĻžāĻŦā§ āĻāĻĒāĻĄā§āĻ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤
āĻā§āύ⧠āϏāĻžāϰā§āĻāĻŋāϏā§āϰ āĻāύā§āϝ āĻāĻĒāϞāĻŦā§āϧ āϰāĻŋāϏā§āϰā§āϏ āϏā§āĻŽāĻŋāϤ āĻāϰāϤ⧠rctl āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧ, āĻāĻŦāĻ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻŦāĻŋāĻā§āĻāĻŋāύā§āύāϤāĻžāϰ āĻāύā§āϝ āϏāĻžāϰā§āĻāĻŋāϏāĻā§āϞā§āĻā§ āĻā§āĻāϞāĻĄ āĻāύāĻāĻžāϝāĻŧāϰāύāĻŽā§āύā§āĻā§ āĻāĻžāϞāĻžāύ⧠āϝāĻžāϝāĻŧāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏāĻžāϰā§āĻāĻŋāϏā§āϰ āĻāύā§āϝ āĻāϞāĻžāĻĻāĻžāĻāĻžāĻŦā§ āĻāĻāύāĻŋāĻā§āϏ āĻāύā§āĻā§āϰā§āϞ āϏāĻā§āĻā§ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤ āϏā§āϞāĻŋāĻĒ āĻŽā§āĻĄ āϏāĻŽāϰā§āĻĨāĻŋāϤāĨ¤
āϏāĻŋāϏā§āĻā§āĻŽ āĻŽā§āϝāĻžāύā§āĻāĻžāϰāĻāĻŋ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ rc.d āϏāĻžāϰā§āĻāĻŋāϏ āϏāĻŋāĻā§āϝāĻŧā§āύāĻļāĻŋāϝāĻŧāĻžāϞ āϏā§āĻāĻžāϰā§āĻāĻāĻĒ āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āϏāĻžāĻĨā§ āϏāĻŽā§āĻĒā§āϰā§āĻŖāϰā§āĻĒā§ āĻŦā§āϝāĻžāĻāĻāϝāĻŧāĻžāϰā§āĻĄ āĻāĻŽā§āĻĒā§āϝāĻžāĻāĻŋāĻŦāϞ āĻāĻŦāĻ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ rc.d āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĢāĻžāĻāϞ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āύāĻž āĻāϰā§āĻ āĻāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤ āĻļā§āϧ⧠āĻāĻāĻāĻŋ āĻāϞāĻŽāĻžāύ āϏāĻŋāϏā§āĻā§āĻŽā§ rcd āĻāύāϏā§āĻāϞ āĻāϰā§āύ, āĻāĻŦāĻ āϰāĻŋāĻŦā§āĻ āĻāϰāĻžāϰ āĻĒāϰ, āĻĒā§āϝāĻžāϰāĻžāϞāĻžāϞ āϏāĻžāϰā§āĻāĻŋāϏ āϏā§āĻāĻžāϰā§āĻāĻāĻĒā§āϰ āĻāĻžāϰāĻŖā§ āĻŦā§āĻ āĻāĻžāĻāĻŽ āĻāĻŽā§ āϝāĻžāĻāϝāĻŧāĻž āĻāĻžāĻĄāĻŧāĻž āϏāĻŦāĻāĻŋāĻā§ āĻāĻā§āϰ āĻŽāϤā§āĻ āĻāĻžāĻ āĻāϰāϤ⧠āĻĨāĻžāĻāĻŦā§āĨ¤ āĻāĻ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāϤāĻž āϏāĻŋāϏā§āĻā§āĻŽāĻā§āϞā§āĻā§ rcd-āϤ⧠āĻŽāĻžāĻāĻā§āϰā§āĻ āĻāϰāĻž āϏāĻšāĻ āĻāϰāĻŦā§ āĻāĻŦāĻ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ rc.d āϏā§āĻā§āϰāĻŋāĻĒā§āĻāĻā§āϞā§āĻā§ āĻĒāϰā§āϝāĻžāϝāĻŧāĻā§āϰāĻŽā§ āĻāĻāύāĻŋāĻ āĻĢāĻžāĻāϞ āĻĢāϰāĻŽā§āϝāĻžāĻā§ āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰāĻžāϰ āϏā§āϝā§āĻ āĻĻā§āĻŦā§āĨ¤
rc.d-āĻāϰ āϏāĻžāĻĨā§ āϏāĻžāĻŽāĻā§āĻāϏā§āϝā§āϰ āĻāύā§āϝ, āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āώ "āϞā§āĻā§āϝāĻžāϏāĻŋ" āĻāĻāύāĻŋāĻ āĻāĻžāĻāĻĒ āϏāĻŽāϰā§āĻĨāύ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ Rcd, /etc/rc.d/ āĻāĻŦāĻ /usr/local/etc/rc.d/-āĻāϰ āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤ⧠āϏā§āĻā§āϝāĻžāύ āĻāϰā§, āϏā§āĻā§āϰāĻŋāĻĒā§āĻā§ āĻĨāĻžāĻāĻž PROVIDE/REQUIRE/BEFORE/KEYWORD āĻšā§āĻĄāĻžāϰāĻā§āϞ⧠āĻĒāĻžāϰā§āϏ āĻāϰā§, rc.conf āϏā§āĻāĻŋāĻāϏ āĻĒāĻĄāĻŧā§ āĻāĻŦāĻ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻļāύā§āϰ āĻ
āĻŦāϏā§āĻĨāĻž āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰā§, āϤāĻžāϰāĻĒāϰ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏā§āĻā§āϰāĻŋāĻĒā§āĻāĻā§ āĻāĻāĻāĻŋ āϞā§āĻā§āϝāĻžāϏāĻŋ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻāĻāύāĻŋāĻ āĻšāĻŋāϏā§āĻŦā§ āĻĒā§āϰāϏā§āϏ āĻāϰā§āĨ¤ āĻāĻ āϧāϰāύā§āϰ āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞ āĻāĻāύāĻŋāĻāĻā§āϞ⧠āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āϝāĻāύ rcctl āĻāĻŽāĻžāύā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ, āϤāĻāύ āĻ
āĻĒāĻžāϰā§āĻļāύāĻā§āϞ⧠āϞā§āĻā§āϝāĻžāϏāĻŋ āĻĢāϰāĻŽā§āϝāĻžāĻā§ āϰā§āĻĒāĻžāύā§āϤāϰāĻŋāϤ āĻšāϝāĻŧ; āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, "rcctl reload sshd" āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻ āĻāϰāϞ⧠"/etc/rc.d/sshd reload" āϰāĻžāύ āĻšāĻŦā§āĨ¤
āĻāϤā§āϏ: opennet.ru
