Fabric: Init рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдХреНрд╕рд░ рдЕрдкрдиреЗ рдбреЗрдореЙрди рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддреЗ рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 19 рдЕрдЧре░ 2011  ┬╖  19рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: fabric/fabric

рд╡рд┐рд╡рд░рдг

рдореИрдВрдиреЗ IRC рдкрд░ рдЗрд╕рдХреА рдХрдИ рд░рд┐рдкреЛрд░реНрдЯреЗрдВ рдкреНрд░рд╛рдкреНрдд рдХреА рд╣реИрдВ, рд╕рд╛рде рд╣реА # 350 рдкрд░ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИ, рдФрд░ рдЕрдм рдПрдХ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдзрд╛рдЧрд╛ ред

рдЕрднреА рддрдХ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЬрдмрдХрд┐ рдпрд╣ рдХрдИ рдмрд╛рд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдореБрдЭреЗ рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдирд┐рд░рдВрддрд░ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдпрд╛ рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реБрдиреЗрдВрдЧреЗред рдореЗрд░реЗ рдЕрдВрдд рдкрд░ рдЕрдм рддрдХ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рд╕реАрдорд┐рдд рдкрд░реАрдХреНрд╖рдг рдореЗрдВ, рдореИрдВ рд╢рд╛рдпрдж 30-50% рд╕рдордп рддрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ - рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред

рд▓рдХреНрд╖рдг рдмрд╕ рдпрд╣ рд╣реИ рдХрд┐ рдбреЗрдореЙрди рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рддреБрд░рдВрдд рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ init-style рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдУрдХреЗ рд▓реМрдЯреЗрдВрдЧреА, 0 рдХрд╛ рд░рд┐рдЯрд░реНрди рдХреЛрдб рдФрд░ "рд╕рдлрд▓рддрд╛" рд╕реНрдерд┐рддрд┐ рд╕рдВрджреЗрд╢ рдХреЛ stdout рдореЗрдВ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рд╢реНрди рдореЗрдВ рдбреЗрдореЙрди рдХреЛ рд╕реНрдкрд┐рди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдореЗрд░рд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд░реАрдХреНрд╖рдг рдПрдХ рдирд╡реАрдирддрдо рдЙрдмрдВрдЯреВ 10.04 (рд▓реНрдпреВрд╕рд┐рдб) рд╡реАрдПрдо рдФрд░ рд╕реНрдЯреЙрдХ рдЕрдкрд╛рдЪреЗ 2 рдкреИрдХреЗрдЬ рдХреА рдЗрдирд┐рдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


рдореВрд▓ рд░реВрдк рд╕реЗ рдЬреЗрдл рдлреЙрд░реЗрд╕рд░ ( рдмрд┐рдЯрдкреНрд░реЙрдкреЗрдЯ ) рджреНрд╡рд╛рд░рд╛ 2011-07-23 рдХреЛ рд╢рд╛рдо 07:25 рдмрдЬреЗ рдИрдбреАрдЯреА рдореЗрдВ рдЬрдорд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛

рд╕рдВрдмрдВрдзреЛрдВ

  • # 350 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд: рдХрдкрдбрд╝рд╛ рдХреБрдЫ рджреВрд░рд╕реНрде рдХрдорд╛рдВрдб (рдбреЗрдореЙрди рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП) рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИ

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдмрд╕ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдереА рдЬрд╣рд╛рдВ рдореИрдВ tty = рдЧрд▓рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ sudo рдХреЗ рд╕рд╛рде рдХрдорд╛рдВрдб рдЪрд▓рд╛рддрд╛ рд╣реВрдВред
>& /dev/null < /dev/null & рдЬреЛрдбрд╝рдирд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдИ рдереАред

рдореИрдВрдиреЗ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрди рд▓рд╛рдЗрди рдХреЗ рдмрд╛рдж рдПрдХ рдиреАрдВрдж рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ: nohup java -jar text.jar & sleep 5; exit 0

рд╕рднреА 19 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЬреЗрдлрд╝ рдлрд╝реЛрд░рд┐рд╢рд░ ( рдмрд┐рдЯрдкреНрд░реЙрдкреЗрдЯ ) рдиреЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛:


рд▓рд┐рдЦреА рдЧрдИ init рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕рдм рдХреБрдЫ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ (рдпрд╛рдиреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдлрд▓рддрд╛ рдпрд╛ рдирдХрд▓реА рд╕рдлрд▓рддрд╛ рдкрд░рд┐рджреГрд╢реНрдп), рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрд░реНрде рд╣реИ apachectl рдХреЙрд▓ рдЬрд┐рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд╡рдпрдВ рдмрдирд╛рддреА рд╣реИред

рд╣рдорд╛рд░реЗ рдЕрдВрдд рдореЗрдВ рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ:

  • рдЪреВрдВрдХрд┐ рдпрд╣ рдЕрд░реНрдз-рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИ, рдЬреЛ рдореБрдЭреЗ рджреМрдбрд╝-рд╣рд╛рд▓рдд-рдЧреНрд░рд╕реНрдд IO рдЙрдкрддрдВрддреНрд░ рдХреЗ рд╕рд╛рде рдкрд┐рдЫрд▓реЗ рдореБрджреНрджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рдХрд┐ рдЗрд╕ рддрд░реАрдХреЗ рд╕реЗ рджреВрд░рд╕реНрде рдЫреЛрд░ рдкрд░ рдХреБрдЫ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рд╕рднреА рд╕реНрдерд╛рдиреАрдп-рдЖрдзрд╛рд░рд┐рдд рд░рд╛рд╕реНрддреЗ рдереЗред

    • рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рджреЗрдЦрдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдореБрджреНрджрд╛ рдлреИрдм 0.9.x рдФрд░ pty = True (1.x рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред

  • рдпрд╣ рд╕рд┐рд░реНрдл рдкреАрдЯреАрдЖрдИ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдореБрдЭреЗ рдпрд╣ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ 1.0 рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдПрдХ рдореБрджреНрджрд╛ рдерд╛ рдФрд░ рдЯреНрд░реВ рдХреЛ рдкреАрдЯреАрдЖрдИ рд╕реЗрдЯ рдХрд░рдирд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдкреНрд░рдореБрдЦ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдлрд┐рд░ рд╕реЗ, рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдХрд┐ рдПрд╕рдПрд╕рдПрдЪ рдХреЗ рдЕрдиреБрд░реЛрдз-рдП-рдкреАрдЯреА рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП init рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред

    • рдпрд╣рд╛рдБ рдПрдХ рдкрд░реАрдХреНрд╖рдг ssh -t <hostname> <command> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рднреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рддрд╛ рд╣реИред


2011-07-23 рдХреЛ рд╢рд╛рдо 07:45 рдмрдЬреЗ EDT

рдЬреЗрдлрд╝ рдлрд╝реЛрд░рд┐рд╢рд░ ( рдмрд┐рдЯрдкреНрд░реЙрдкреЗрдЯ ) рдиреЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛:


apache2ctl рд╕реНрд╡рдпрдВ рднреА рдХреЗрд╡рд▓ рдПрдХ рд░реИрдкрд░ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ, рдЬреЛ /usr/sbin/apache2 рдХреЙрд▓ рдХрд░рддреА рд╣реИ, рдЬреЛ рдЕрдкрд╛рдЪреЗ mpm- рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╕реНрдерд╛рдкрд┐рдд рд╕реНрдерд╛рди рдореЗрдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмрд╛рдЗрдирд░реА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╣рд╛рдиреБрднреВрддрд┐ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╕рд╛рдорд╛рдиреНрдп start рдЙрдкрдпреЛрдЧ рдореЗрдВ рдпрд╣ /usr/sbin/apache2 -k start рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдХреА рддрд░рд╣, apache2ctl рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рдХрд┐рд╕реА рднреА рдЕрд▓рдЧ рддрд░рд╣ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рд╕реЗ: рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рдпрд╛ рдХреМрди рд╕реЗ рд╕реЗрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред

/usr/sbin/apache2 рдХреЗ рдбреЙрдХреНрд╕ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕реАрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВ (рдЕрдкрд╛рдЪреЗ рдХреА рд╕рд╛рдЗрдЯ рдкрд░ рднреА), рдХреЗрд╡рд▓ рдпрд╣ рдмрддрд╛рддреЗ рд╣реБрдП рдХрд┐ рдЖрдк рдХреЛ рдПрдиреНрд╡рд╛ vars рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрд╛рдЪреЗрдХреНрдЯрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреЛ рдХрд┐ рд╕рдЯреАрдХ рд╣реИ - apache2 рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рддрд╛ рд╣реИ) рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред)

env apache2ctl apache2 рдордВрдЧрд▓рд╛рдЪрд░рдг рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рдЙрддреНрдкрд╛рджрди рдХреА рдЬрд╛рдВрдЪ рдХреЗрд╡рд▓ рдХреБрдЫ рд╡рд╕реНрддреБрдУрдВ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рд╕рдореВрд╣, pidfile рд╕реНрдерд╛рди рдФрд░ рднрд╛рд╖рд╛ред рдпреЗ рд╕рдлрд▓рддрд╛ рдФрд░ рдЕрд╕рдлрд▓рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВред рдореИрдВ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ рд░реИрдкрд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЦрдЯрд╛рд╕ рдФрд░ env var рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдХреБрдЫ рд╣реЛрдЧрд╛ рдЬреЛ рдХрднреА-рдХрднреА рдмрджрд▓ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдирд╣реАрдВред


рдЕрдм рддрдХ рдпрд╣ рдХрд╣реАрдВ рднреА рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдЪрд╛рд░реЛрдВ (pty, ssh) рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡рд╣рд╛рдБ рдХреНрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддреЗ рд╣реИрдВред


2011-07-23 рдХреЛ 08:46 рдмрдЬреЗ рдИрдбреАрдЯреА

рдЬреЗрдлрд╝ рдлрд╝реЛрд░рд┐рд╢рд░ ( рдмрд┐рдЯрдкреНрд░реЙрдкреЗрдЯ ) рдиреЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛:


pty=False , рдпрд╣ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдХреНрд╕ рдХреА рдЯрд┐рдкреНрдкрдгреА # 350 рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ)ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреНрд░реВ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде, рдореИрдВ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЛ рд▓рдЧрднрдЧ 5/10 рдмрд╛рд░ рджреЗрдЦ рд░рд╣рд╛ рдерд╛, рдХрднреА-рдХрднреА рдХреБрдЫ рдЕрдзрд┐рдХ рдпрд╛ рдХрдоред рдЭреВрдареА рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓рдЧрднрдЧ 15 рдмрд╛рд░ рд▓рдЧрд╛рддрд╛рд░ рд╢реВрдиреНрдп рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдпрд╛ рд╣реИред рдПрдХ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрд╡рд┐рджреН рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред

ssh рдХреЛ рд╣рд╛рде рд╕реЗ рдЪрд▓рд╛рдиреЗ рд╕реЗ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддреЗ рд╣реИрдВ: ssh -t <host> sudo /etc/init.d/apache2 start рдЪреБрдкрдЪрд╛рдк рдЕрдкрд╛рдЪреЗ рдХреЛ рд▓рдЧрднрдЧ 50% рд╕рдордп рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣реЗрдВрдЧреЗред -T (pty рдирд╣реАрдВ рд╣реИ) рдХреЗ рд╕рд╛рде рд╣реА рдФрд░ рдпрд╣ рд╕рдордп рдХреЗ 100% рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред

рддреЛ рдпрд╣ рдлреИрдмреНрд░рд┐рдХ рдХреА рдЧрд▓рддреА рдирд╣реАрдВ рд╣реИ; рдпрд╣ рдХреБрдЫ рдЧрд╣рд░рд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпреЗ init рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреБрд░реНрд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреА рд╣реИрдВ рдЬрдм рдПрдХ SSH рд╢реИрд▓реА рдЫрджреНрдо рдЯреНрдЯреА рдЦреЗрд▓ рдореЗрдВ рд╣реЛрддреА рд╣реИред


рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рдХреА рдЦрд╛рддрд┐рд░ рдереЛрдбрд╝рд╛ рдЧрд╣рд░рд╛ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ "рд╕рдорд╛рдзрд╛рди" рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рдпрд╣рд╛рдВ рдПрдХ рдирдпрд╛ FAQ рд╣реИ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдкрд░ pty=False рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИред


2011-07-23 рдХреЛ 08:59 рдмрдЬреЗ рдИрдбреАрдЯреА

рдЬреЗрдлрд╝ рдлрд╝реЛрд░рд┐рд╢рд░ ( рдмрд┐рдЯрдкреНрд░реЙрдкреЗрдЯ ) рдиреЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛:


рд╣рд╛рдБ, рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗред рдКрдкрд░ рджрд┐рдП рдЧрдП рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд░рд╛рд╕реНрддрд╛ рддрдп рдХрд░рдирд╛ рд╣реИред


2011-07-23 рдХреЛ рд░рд╛рдд 10:35 рдмрдЬреЗ EDT

рд╣реНрдпреВрдЧреЛ рдЧрд╛рд░реНрдЬрд╝рд╛ (hiro2k) рдиреЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛:


рдЙрд╣ рдореИрдВ рдХрд▓ рд╣реА рднрд╛рдЧ рдЧрдпрд╛ рдерд╛, рдХрд╛рд╢ рдореИрдВрдиреЗ рдЗрд╕ рдмрдЧ рдХреЛ рджреЗрдЦрд╛ рд╣реЛрддрд╛, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВрдиреЗ рдкреАрдЯреА = рдлрд╛рд▓реНрд╕ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рдХрд╛рдо рднреА рдХрд░ рдЧрдпрд╛ред рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдХрдкрдбрд╝реЗ рдХреА рдЧрд▓рддреА рдирд╣реАрдВ рд╣реИред рдЕрдм рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдЭреЗ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред


2011-08-02 рдХреЛ рджреЛрдкрд╣рд░ 01:27 рдмрдЬреЗ EDT

рдХреНрдпрд╛ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ? рдореЗрд░рд╛ рдорддрд▓рдм рдореЗрд░реА рдореЗрд▓рд┐рдВрдЧ рд▓рд┐рд╕реНрдЯ рдереНрд░реЗрдб рд╕реЗ рд╣реИред рд╡реЗ рд╕рд┐рд░реНрдл рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдереЗ рдЬреЛ рдЬрд╛рд╡рд╛ рдФрд░ рд╡реЗрдмрд▓реЙрдЧ рд╢реБрд░реВ рдХрд░рддреЗ рдереЗред

FWIW, рдореИрдВ рдмрд╣реБрдд рднрдпрд╛рдирдХ рд╣рд░ Ubuntu рдорд╢реАрди рдореИрдВ EC2 рдкрд░ рд╕реНрдкрд┐рди рдкрд░ рдЗрд╕ рднрдпрд╛рдирдХ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдпрд╣ рдПрдХ рдЕрд▓рдЧ рд╕реНрдХреНрд░реАрди screen -d -m someBackgroundTask рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рднреА рд╣реИред

рдореБрдЭреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдорддреМрд░ рдкрд░ pty=False рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдРрд╕реЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдРрд╕рд╛ рдирд╣реАрдВ рдерд╛ред

@yuvadm - рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ pty = рдЭреВрдареА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЕрднреА рднреА рдирд┐рдпрдорд┐рдд ssh рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)? рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдпрд╣ SSH рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдлреИрдмреНрд░рд┐рдХ рдПрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдРрд╕реА рдХреЛрдИ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдпрд╣ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА рд╣реИред

рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдХреЛрдг рд╣реИ, рдореИрдВ рдЖрдкрдХреЛ рдЙрд╕ рдПрдХ рдкрд░ рд╡рд╛рдкрд╕ рд▓рд╛рдКрдВрдЧрд╛ ...

рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд┐рдпрд╛ рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ Ubuntu 10.04.3 LTS рд╣реИ, рд╕рд░реНрд╡рд░ "Ubuntu 8.04.4 LTS (рд╕рд░реНрд╡рд░)" рд╣реИред
SSH рдХреНрд▓рд╛рдЗрдВрдЯ "OpenSSH_5.3p1 Debian-3ubuntu7, OpenSSL 0.9.8k 25 Mar 2009" рд╣реИ, ssh рд╕рд░реНрд╡рд░ "OpenSSH_4.7p1 Debian-8ubuntu1, OpenSSH_4.7p 19 рдЕрдХреНрдЯреВрдмрд░ 2007" рд╣реИред рдлреИрдмреНрд░рд┐рдХ "1.3.3 рдлрд╛рдЗрдирд▓" рд╣реИред

рдореБрджреНрджрд╛ рд╡рд╣рд╛рдБ рд╣реИ 100% pty рдХреЗ рд╕рд╛рде = True, рдФрд░ рдпрд╣ pty = False рдХреЗ рд╕рд╛рде рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдиреНрдп рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛, рд╕рдорд╕реНрдпрд╛ рд╣рдореЗрд╢рд╛ рд╡рд╣рд╛рдБ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдЬрдм pty = Trueред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдзрд╛рд░рдг рдХрдорд╛рдВрдб рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ: "nohup рд╕реНрд▓реАрдк 100> / tmp / xxx 2> & 1

рдореБрдЭреЗ рдЗрд╕ рдкрд░ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреЗрд╡рд▓ EC2 рдкрд░ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд▓рдЧрддрд╛ рд╣реИ (рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдиреЛрдб рдкрд░ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ 100% рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ)ред рдкреИрдЯреА рд▓рдЧрд╛рдирд╛ = рдЭреВрдареА рдмрд╛рдд рддрдп рдХрд░рдирд╛ред

рдмрд╕ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдереА рдЬрд╣рд╛рдВ рдореИрдВ tty = рдЧрд▓рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ sudo рдХреЗ рд╕рд╛рде рдХрдорд╛рдВрдб рдЪрд▓рд╛рддрд╛ рд╣реВрдВред
>& /dev/null < /dev/null & рдЬреЛрдбрд╝рдирд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдИ рдереАред

рдореИрдВрдиреЗ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрди рд▓рд╛рдЗрди рдХреЗ рдмрд╛рдж рдПрдХ рдиреАрдВрдж рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ: nohup java -jar text.jar & sleep 5; exit 0

рдзрдиреНрдпрд╡рд╛рдж spodgruskiy,

рдЖрдкрдХреЗ рдЯрд┐рдкреНрд╕ рдореЗрд░реЗ рдХрд╛рдо рдЖрддреЗ рд╣реИрдВред
рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдереА рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде fab tp рдПрдХ рд╕реНрдЯреНрд░реЛрдо рдХреНрд▓рд╕реНрдЯрд░ рд╢реБрд░реВ рдХрд░реЗрдВред

  1. рд░рди ('nohup ./bin/storm nimbus> & / dev / null </ dev / null &', pty = False)
  2. рд░рди
  3. рд░рди ("рд╕реНрдХреНрд░реАрди -d -m 'ред/bin/storm nimbus'", pty = рдЧрд▓рдд)
  4. рд░рди

рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛, рдирд┐рдВрдмрд╕ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖред рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖред
рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ рдзрдиреНрдпрд╡рд╛рджред

рдиреАрдВрдж рдХреА рдЪрд╛рд▓ рдХреЗ рд▓рд┐рдП +1

рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╕рд╛рде рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ

рд╕реБрдбреЛ ('рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░реЛ; рдиреАрдВрдж 5') рдФрд░ рд╕рдм рдареАрдХ рд╣реИ!

рдЬрд╣рд╛рдВ рдЖрдк 'sudo ()' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд░рд┐рдореЛрдЯ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ sudo рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рд╕рдХреНрд╖рдо рд╣реИрдВ, рдЖрдк 'set -m' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рд╕реЗрд╡рд╛рд╕реНрдЯрд╛рд░реНрдЯ 'рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХреА рдЧрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рдХрд░реЗрдВред

Http://stackoverflow.com/a/14866774 рдмреИрд╢ рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдмрдирд╛рдо рдЧреИрд░-рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ рдФрд░ рдпрд╣ рдХрд┐ рдиреМрдХрд░реА рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИред

рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдБ, рдпрд╣рд╛рдБ ssh рдореБрджреНрджрд╛ рдХреНрдпрд╛ рд╣реИ?

pty = рдореЗрд░реЗ рд▓рд┐рдП рдЧрд▓рдд рдХрд╛рдо

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ SSH рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ BASH рдЧреИрд░-рд╕рдВрд╡рд╛рджрд╛рддреНрдордХ / рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдореЛрдб рдФрд░ рд╕рдореВрд╣реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рд╕рд╛рд░ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЕрдзрд┐рдХ рд╕реВрдХреНрд╖реНрдо рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд http://stackoverflow.com/questions/14679178/why-does-ssh-wait-for-my-subshells-without-t-and-kill-them-with-t/14866774#14866774 рдФрд░ http: рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

pty / tty = false

рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдмреИрд╢ рд╢реЗрд▓ рд╢реБрд░реВ рдХреА рдЧрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ stdout / stderr / stdin рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рддрдм рддрдХ рдЗрд╕реЗ рдЪрд╛рд▓реВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╕реЙрдХреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдмрдЪреНрдЪреЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЪреБрдХреЗ рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рдЕрдЪреНрдЫреА рдмрдзрд┐рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧреА рдХрд┐ рдпрд╣ рдмрдЪреНрдЪреЛрдВ рдХреЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ, рдмрдЪреНрдЪреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд╛рдВрдЯрдиреЗ рдФрд░ рдлрд┐рд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рди рдХрд░реЗред рдЬрдм рдЗрд╕ рдореЛрдб рдореЗрдВ SSH рджреНрд╡рд╛рд░рд╛ рдЪрд╛рдЗрд▓реНрдб рдкреНрд░реЛрд╕реЗрд╕ рдХреЛ рдХреЛрдИ SITEUP рдирд╣реАрдВ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬреЛ рдЦреБрдж рдХреЛ рдмрд╣рд░рд╛ рдХрд░рдиреЗ рд╕реЗ рдирд┐рдкрдЯрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЬрд╣рд╛рдВ init рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП '&' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реЛрдЧреА рдХрд┐ рдХреНрдпрд╛ рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрднреА рднреА рд╕реНрдЯрдб рд╕реЗ рдкрдврд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рддреНрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдПрдХ SITEUP рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ред

pty / tty = true *

рдпрджрд┐ init рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдкреНрд░реЛрд╕реЗрд╕ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреИрд░реЗрдВрдЯ BASH рд╢реЗрд▓ SSH рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреНрдЬрд┐рдЯ рдХреЛрдб рд▓реМрдЯрд╛рдПрдЧрд╛, рдЬреЛ рддреБрд░рдВрдд рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рдЗрд▓реНрдб рдкреНрд░реЛрд╕реЗрд╕ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ stdout рдкрд░ рдмреНрд▓реЙрдХ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред / stderr / рд╕реНрдЯрдбред рдЗрд╕рдХреЗ рдХрд╛рд░рдг SIGHUP рдХреЛ рдкреИрд░реЗрдВрдЯ рдмреИрд╢ рд╢реЗрд▓ рдкреНрд░реЛрд╕реЗрд╕ рдЧреНрд░реБрдк рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЪреВрдВрдХрд┐ рдЬреЙрдм рдХрдВрдЯреНрд░реЛрд▓ рдмреИрд╢ рдореЗрдВ рдиреЙрди-рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдореЛрдб рдореЗрдВ рдЕрдХреНрд╖рдо рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ рд▓реЙрдиреНрдЪ рдХреА рдЧрдИ рдЪрд╛рдЗрд▓реНрдб рдкреНрд░реЙрд╕реЗрд╕ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреАред рдЬрд╣рд╛рдВ рдПрдХ рдбреЗрдореЙрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдирдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рддреНрд░ рд╢реБрд░реВ рдХрд░рддреА рд╣реИ рдЬрдм рдлреЛрд░реНрдХрд┐рдВрдЧ рдпрд╛ рдХрд╛рдВрдЯреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рддрдм рдпрд╣ рдпрд╛ рдпрд╣ рдмрдЪреНрдЪреЗ BASH рдореВрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдкрд░ SIGHUP рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдирд┐рд▓рдВрдмрд┐рдд рдиреМрдХрд░рд┐рдпреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИ рдЬреЛ рдПрдХ SIGTERM рдХреЛ рджреЗрдЦреЗрдЧрд╛ред

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдЖрд╕-рдкрд╛рд╕ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдХреЗрд╡рд▓ рдХрднреА-рдХрднреА рдереЛрдбрд╝реА рд╕реА рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк deamonizing рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ - http://www.itp.uzh.ch/~dpotter/howto/daemonize рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджреМрдбрд╝реЗрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдХреНрд╕реЗрдЬ / рд╡рд┐рдлрд▓рддрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ред рдПрдХ рд╕реНрд▓реАрдк рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рдХрд╛рдВрдЯреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╕рддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рдорд┐рд▓реЗрдЧрд╛, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

pty / tty = рд╕рдЪ рдФрд░ рдиреМрдХрд░реА рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ bash рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

SSH рдмреИрд╢ рд╢реЗрд▓ рдпрд╛ рдХрд┐рд╕реА рднреА рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рдЪрд╛рдЗрд▓реНрдб рдкреНрд░реЛрд╕реЗрд╕ рдХреЗ stdout / stderr / stdin рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рдпрд╣ рд╣реИ рдХрд┐ рдЬреИрд╕реЗ рд╣реА рдкреЗрд░реЗрдВрдЯ рдмреИрд╢ рд╢реЗрд▓ рдиреЗ рдЕрдиреБрд░реЛрдзрд┐рдд рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдпрд╣ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬреЙрдм рдХрдВрдЯреНрд░реЛрд▓ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рдмреИрд╢ рд╢реЗрд▓ рджреНрд╡рд╛рд░рд╛ '' рдХреЛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рдкреНрд░реЛрд╕реЗрд╕ рдХреЛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рддреБрд░рдВрдд рдПрдХ рдЕрд▓рдЧ рд╕реЗрд╢рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЬрдм BASH рд╕реЗрд╢рди рд╕реЗ рдкреИрд░реЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рддреЛ SIGHUP рд╕рд┐рдЧреНрдирд▓ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ ( рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрд╕рдПрд╕рдПрдЪ рдХрдиреЗрдХреНрд╢рди)ред

рдЬрд┐рд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ / рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд░рди / рд╕реБрдбреЛ рдСрдкрд░реЗрд╢рдВрд╕ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореВрд▓ рд░реВрдк рд╕реЗ рдпрд╛ рддреЛ 'pty = false' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рдЬрд╣рд╛рдВ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд╣рд▓реА рдХрдорд╛рдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдиреМрдХрд░реА рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рд╣реА рд╣реЛрдЧрд╛ред

рд▓рд┐рдВрдХ рдЕрдкрдбреЗрдЯ: http://www.ics.uzh.ch/~dpotter/howto/daemonize

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдХрд┐ рдлреИрдмреНрд░рд┐рдХрд┐рдЯ (рдлреИрдмреНрд░рд┐рдХ рд▓рд┐рдмрд╛рд╕ рдХрд╛ рд░реИрдкрд░) https://github.com/HyukjinKwon/fabrickit/commit/cceb8bfb8f960a3ac41b24bcbb8358bd6e7a0366366

рдЖрдк рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдпрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмрд┐рдирд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдбреЗрдореЙрди рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рд╡реИрд╕реЗ рднреА рд╢реИрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рд╢реЗрд▓ рдХреЛ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗ:

run("sh -c '((nohup %s > /dev/null 2> /dev/null) & )'" % cmd, pty=False)

рдореИрдВрдиреЗ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдпрд╣ рдПрдХ рдбреЗрдореЙрди рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд▓реВрдк рдХреЗ рдареАрдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди 'рд╣реИрд▓реЛ' рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓рд╛ рд╕рд┐рд░реНрдл рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо)ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

26huitailang picture 26huitailang  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

SamuelMarks picture SamuelMarks  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

zhaoguixu picture zhaoguixu  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bitprophet picture bitprophet  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bitprophet picture bitprophet  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ