reboot()
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛, рдЬреЛ рдХрд┐ Ubuntu 14.04 рдФрд░ FreeBSD 10.x рд╣реЛрд╕реНрдЯ рджреЛрдиреЛрдВ рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди Ubuntu 16.04 рд╣реЛрд╕реНрдЯ рдкрд░ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИред
Ubuntu 14.04 рдкрд░ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ:
рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдХ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд░рд┐рдмреВрдЯ рдХрд░рддрд╛ рд╣реИ, рд░рд┐рдмреВрдЯ рдлреИрдмреНрд░рд┐рдХ рдХреЗ рдлрд┐рд░ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рдмрд╛рджред
[ubuntu] out:
[ubuntu] out:
[ubuntu] out: Broadcast message from root<strong i="9">@ubuntu</strong>
[ubuntu] out:
[ubuntu] out: (/dev/pts/0) at 15:02 ...
[ubuntu] out:
[ubuntu] out:
[ubuntu] out:
[ubuntu] out:
[ubuntu] out: The system is going down for reboot NOW!
[ubuntu] out:
[ubuntu] out:
Ubuntu 16.04 рдкрд░ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ:
рдпрджрд┐ рдореИрдВ рдЗрд╕ рд░рд╛рдЬреНрдп рдореЗрдВ рдПрдВрдЯрд░ рдХреБрдВрдЬреА рджрдмрд╛рддрд╛ рд╣реВрдВ, рддреЛ рдлреИрдмреНрд░рд┐рдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:
No handlers could be found for logger "paramiko.transport"
Warning: sudo() received nonzero return code -1 while executing 'reboot'!
рдореИрдВ рдЗрд╕ рдХреЛрдб рдХреЛ рд░рд┐рдмреВрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
def reboot_():
with settings(warn_only=True):
print 'rebooting'
start_time = time.time()
reboot(wait=1200)
print 'reboot took: {} seconds'.format(time.time() - start_time)
рдпрд╣ рд░рди рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рд╣реИ ('рд░рд┐рдмреВрдЯ')
рдпрд╣ рдПрдХ рдореИрдиреБрдЕрд▓ run
рд╕рд╛рде рдПрдХ рд╣реА рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣реИ - рдЙрдмрдВрдЯреВ рдХреЗ рд░рд┐рдмреВрдЯ, рдПрд╕рдПрд╕рдПрдЪ рдХрдиреЗрдХреНрд╢рди рдЖрджрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреБрдЫ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред
рдорди рдореЗрдВ рдХреБрдЫ рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди reboot()
(рдлреИрдм рдХрд╛, рд▓рд┐рдирдХреНрд╕ рдХрд╛ рдирд╣реАрдВ) рдмрд╣реБрдд рдмреБрдирд┐рдпрд╛рджреА рд╣реИ - рдпрд╣ рдмрд╕ sudo('reboot')
рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдлреИрдмреНрд░рд┐рдХ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдкреБрдирд░реНрд╕рдВрд░рдЪрдирд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЯреНрд╡рд┐рд╕реНрдЯ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдПрдХ nontrivial рд░рд┐рдмреВрдЯ рдЕрдиреБрдХреНрд░рдо рдХреЗ рдмрд╛рдж рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛ рд╕рдХреЗред (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрдирд╛рдо, рдЬреЛ рдмрд╣реБрдд рдЬрд▓реНрджреА рдЫреЛрдбрд╝ рджреЗрдЧрд╛)ред
Https://github.com/fabric/fabric/blob/c0224a52df59821f21a8c0bd47ce15e42c2046a4/fabric/operations.py#L1244 - рдЖрдк рдЗрд╕реЗ рдЯреНрд╡рд┐рдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред
Paramiko рдХреЗ рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ (рд╣рдорд╛рд░реЗ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдкреГрд╖реНрда рдХреЗ рдиреАрдЪреЗ рджреЗрдЦреЗрдВ - http://www.fabfile.org/troublesourcing.html) рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рд╕реБрд░рд╛рдЧ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред
рджрд░рдЕрд╕рд▓, рджреВрд╕рд░реЗ рд╡рд┐рдЪрд╛рд░ рдкрд░, рдпрд╣ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдмрдВрдЯреВ рдХреЗ reboot
рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдирд┐рдХрд▓ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдлреИрдмреНрд░рд┐рдХ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдХрд╛рд╕ рдХреЛрдб рд╕рдмрдорд┐рдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ ( run
/ sudo
), рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЗрд╕ sudo
рдиреЛрдЯ рдХрд░рддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк reboot()
рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ sudo('reboot')
рдХреЙрд▓ рдЕрдВрддрддрдГ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдпрд╣ рдП) рдереЛрдбрд╝рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд╕рдХреЗ рдФрд░ рдмреА) рдкреБрди: рд╕рдВрдпреЛрдЬрди рд╢реБрд░реВ рдХрд░ рд╕рдХреЗред
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐, рдлреИрдмреНрд░рд┐рдХ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдирд┐рд╖реНрдкрд╛рджрди рдХреЗрд╡рд▓ sudo
рднреАрддрд░ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреБрдЫ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ рдЙрд╕ рдЕрдкреЗрдХреНрд╖рд╛ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░ рд░рд╣рд╛ рд╣реИред рдЕрдЬреАрдм рддрд░рд╣ рдХрд╛ред _Maybe_ рдлреИрдмреНрд░рд┐рдХ рдореЗрдВ рдПрдХ рдмрдЧ, рд▓реЗрдХрд┐рди рджреВрд░рд╕реНрде рдЫреЛрд░ рдкрд░ рдЦрд░рд╛рдм рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред (рдкреБрдирд╢реНрдЪ: рдХреМрди рд╕реЗ рдлреИрдмреНрд░рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг (рдУрдВ) рдХреЛ рдЖрдк рдЗрд╕ рдкрд░ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ?)
рдСрдлрд╣реИрдВрдб рдиреЗ рд╕реЛрдЪрд╛ - рд╣рдо рд╢рд╛рдпрдж timeout=
sudo
рдкрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ except TimeoutException: pass
ред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдЗрд╕ (рдЕрдЬреАрдм) рд╕реНрдерд┐рддрд┐ рдореЗрдВ рднреА, рд╣рдо рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдореЗрдВ рдЪреВрдХ рдХрд░ рджреЗрдВред
рдХреЗрд╡рд▓ рдирдХрд╛рд░рд╛рддреНрдордХ рд╕реНрдерд┐рддрд┐ рдпрд╣ рд╣реЛрдЧреА рдЬрд╣рд╛рдВ reboot
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░рд┐рдмреВрдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдЙрдкрд░реЛрдХреНрдд рдмрджрд▓рд╛рд╡ рд╕реЗ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЛ рдмрдирд╛рдПрдВрдЧреЗ - рдЕрдирдВрдд рд▓рдЯрдХрд╛ рдмрд╕ sudo
рдмрдЬрд╛рдп рдХрдиреЗрдХреНрд╢рди рд▓реВрдкред
Ubuntu 16.04 рдореЗрдВ рдПрдХ рдЕрдиреНрдп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЬреАрдм, рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИред рдЬрдм рдореИрдВ ssh рд╕рддреНрд░ рдореЗрдВ poweroff
рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдорд╢реАрди рдмрд┐рдЬрд▓реА рдмрдВрдж рдХрд░ рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди SSH рд╕рддреНрд░ рд▓рдЯрдХ рдЬрд╛рддрд╛ рд╣реИ! Ctrl + C, рдпрд╛ Ctrl + D, рдпрд╛ рдХреБрдЫ рднреА рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдмрд╕ рдЗрддрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ _lot_ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж ssh рдЧрд░реНрднрдкрд╛рдд рдХрд░реЗрдВ:
packet_write_wait: Connection to 192.168.56.11: Broken pipe
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ SSH рдХрдиреЗрдХреНрд╢рди рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреА рдЧрд╣рд░реА рдЬреЗрдм рдореЗрдВ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд░рд┐рдмреВрдЯ рдХреЗ рд╕рдорд╛рди рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА рдЯреВрдЯреЗ рд░рд┐рдмреВрдЯ (рддрд╛рдЬрд╛ рдЕрдк-рдЯреВ-рдбреЗрдЯ рдЙрдмрдВрдЯреВ 16.04 рдореЗрдВ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕, рдлреИрдмреНрд░рд┐рдХ == 1.12.0) рдкрд░ рд░рди рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗред рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рд┐рд░реНрдл рдлреЗрдВрдХрддрд╛ рд╣реИ:
Fatal error: sudo() received nonzero return code -1 while executing!
Requested: reboot
Executed: sudo -S -p 'sudo password:' /bin/bash -l -c "reboot"
рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рд╣рд╛рде рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ (рд╣реЛрд╕реНрдЯ рд░рд┐рдмреВрдЯ) sudo reboot
рдЪрд▓ рд░рд╣реЗ рд╣реИрдВред
рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
$ readlink /sbin/reboot
/bin/systemctl
$ readlink /sbin/shutdown
/bin/systemctl
рдФрд░ рдПрдХ рдФрд░ рдЕрдЬреАрдм рдмрд╛рддред рдореИрдВрдиреЗ aws-cli рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдмреВрдЯрд┐рдВрдЧ рдХреЛрдб рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдХреЙрд▓ рдХреЗ рдмрд╛рдж (рдЬреЛ ~ 1sec рд▓реЗрддрд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реИ) рдореИрдВ sudo('add-apt-repository --yes ppa:nginx/stable')
рдЪрд▓рд╛рддрд╛ рд╣реВрдВред рдпрд╣ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рд░рд┐рдмреВрдЯ рдХреЗ рдмрд╛рдж рдпрд╣ -1 рднреА рд▓реМрдЯ рдЖрдпрд╛:
sudo: add-apt-repository --yes ppa:nginx/stable
Fatal error: sudo() received nonzero return code -1 while executing!
Requested: add-apt-repository --yes ppa:nginx/stable
Executed: sudo -S -p 'sudo password:' /bin/bash -l -c "add-apt-repository --yes ppa:nginx/stable"
рдлрд┐рд░ рдореИрдВрдиреЗ fabric.network.disconnect_all()
рдЬреЛрдбрд╝рдХрд░ рдХрдкрдбрд╝реЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдпрд╣ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк (рдХреНрдпреЛрдВ ??):
[...] sudo: add-apt-repository --yes ppa:nginx/stable
[...] Login password for 'ubuntu':
рдФрд░ рдЬрдм рдореИрдВрдиреЗ рд░рд┐рдмреВрдЯ рдХреЗ рдмрд╛рдж time.sleep(60 * 3)
рдЬреЛрдбрд╝рд╛ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдЦрд░рд╛рдм рдмреИрдВрдб-рд╕рд╣рд╛рдпрддрд╛ рд╣реИ, рдФрд░ рдЕрдм рдореИрдВ рд╣реИрд░рд╛рди рд╣реВрдВ рдХрд┐ рдкрд╛рд╕рд╡рд░реНрдб рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рд╕реЗ рдХреИрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ "рд░рд┐рдмреВрдЯ" рдЕрдм рдХрднреА-рдХрднреА "рдмрд╣реБрдд рддреЗрдЬрд╝" рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдХрдорд╛рдВрдб рдХреА рд╕реНрдерд┐рддрд┐ ssh рдХрдиреЗрдХреНрд╢рди рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПред
(рдЯрд┐рдк: рдпрджрд┐ рдЖрдк рдПрдХ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЬрдореЗ рд╣реБрдП ssh рдХрдиреЗрдХреНрд╢рди рдкрд░ рд╣реИрдВ: \n~.
aka enter, teee, рдЕрд╡рдзрд┐ рдЯрд╛рдЗрдк рдХрд░реЗрдВред рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ ssh рдПрд╕реНрдХреЗрдк рдХреИрд░реЗрдХреНрдЯрд░ рд╣реИ, рддреЛ ssh рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рд╕рд┐рд░реНрдл crl-рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ- c рдпрд╛ ctrl-d, ssh рдЗрд╕реЗ рджреВрд╕рд░реА рддрд░рдл рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред)
рдПрдХ рд╕рдорд╛рдзрд╛рди shutdown -r +1
, рдЬреЛ рдЕрдЧрд▓реЗ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рд░рд┐рдмреВрдЯ рдХреЛ рд╢реЗрдбреНрдпреВрд▓ рдХрд░реЗрдЧрд╛, рдФрд░ рдлрд┐рд░ рдЗрд╕рдХреЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд┐рдирдЯ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред рдмреЗрд╢рдХ, рдПрдХ рдорд┐рдирдЯ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред
рд╣реИрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: shutdown -r +0
reboot
рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди UbuntuBox-16.04 рдХреЗ рдореЗрд░реЗ рд╕реАрдорд┐рдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓рдмреЙрдХреНрд╕ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рд▓рдВрдмрд╛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрддрд╛ рд╣реИ, рдЕрдЧрд▓рд╛ рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИ рдореИрдиреБрдЕрд▓ ssh рд╕рддреНрд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рд╢реЗрд▓ рдкреНрд░рд╛рдВрдкреНрдЯред
рдпрд╣ рд╢рд╛рдпрдж # 1444 рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ
рдЕрдЧрд░ init рдбреЗрдореЙрди рдХреЛ рд░рд┐рдмреВрдЯ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдХрд┐ systemd sshd рдХреЛ рддреБрд░рдВрдд рдорд╛рд░ рд░рд╣рд╛ рд╣реИред
рдбреЗрдмрд┐рдпрди / рдЙрдмрдВрдЯреВ рдХреЗ рд╕рд┐рд╕реНрдЯрдордб рдХреЗ рдкреИрдХреЗрдЬ рдкрд░ рдПрдХ рдмрдЧ рдерд╛, рдЬрд┐рд╕рдиреЗ рд╢рдЯрдбрд╛рдЙрди рдкрд░, рдПрд╕рдПрд╕рдПрдЪ рдПрдХ рд╕рдм рдХреБрдЫ рд▓рдЯрдХрд╛рдП рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрд╡рд╛ рдХреЛ рдорд╛рд░ рджрд┐рдпрд╛ред
рдпрд╣ рдирд╡реАрдирддрдо рдмрд┐рдВрджреБ рд░рд┐рд▓реАрдЬ рдкрд░ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред Ubuntu рдкреИрдХреЗрдЬ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддреЗред
Ubuntu рдХреЗ рд▓рд┐рдП рдмрдЧ рдХреА рд╕реВрдЪрдирд╛ рджреА:
https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/1645002
рдореИрдВрдиреЗ рдЕрдкрдиреА рдХреБрдЫ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдореЗрдВ рд░рд┐рдмреВрдЯ () рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдмрд╛рдд рдХреА рдереАред рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп, рд░рд┐рдмреВрдЯ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХреАрдлрд╛рдЗрд▓-рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдХрдиреЗрдХреНрд╢рди рд▓рдЯрдХрд╛ рд╣реБрдЖ рдерд╛ (рд░рд┐рдмреВрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред
Ubuntu рдмрдЧ https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/1645002 рдХреЛ 16.10 рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди 16.04 рдореЗрдВ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдХрдм рд╣реЛрдЧрд╛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред
рдореЗрд░реЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдкреИрд░рд╛рдорд┐рдХреЛ / рдлреИрдмреНрд░рд┐рдХ рддреБрд░рдВрдд рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрддрд╛ рд╣реИ рдХрд┐ ssh рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдкреИрд░рд╛рдореАрдХреЛ / рдлреИрдмреНрд░рд┐рдХ рд░рд┐рдмреВрдЯ рдХрдорд╛рдВрдб рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдореВрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рддрд░рд╣ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рддрдХ рд▓рдЯрдХрд╛ рдирд╣реАрдВ рд╣реИред
Fatal error: sudo() received nonzero return code -1 while executing!
...
Aborting.
рд╕рд╛рджрд╛ reboot()
рдиреЗ рд▓рдЧрд╛рддрд╛рд░ рдореЗрд░реЗ рд▓рд┐рдП AWS EC2 рдФрд░ рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╡рд░реНрдЪреБрдЕрд▓рдмреЙрдХреНрд╕ VM рдХреЗ рдЦрд┐рд▓рд╛рдл рдХрдИ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдПред (рдореИрдВ рд╣рдореЗрд╢рд╛ рдХреАрдлрд╛рдЗрд▓ рдСрд░реНрдЯ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддрд╛ рдерд╛ред)
рдореИрдВрдиреЗ рдПрдХ рдЫреЛрдЯрд╛ рдФрд░ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдкрд╛рдпрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рдмрд┐рдирд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ:
reboot(command="shutdown -r +0")
рдореЗрд░реЗ рд▓рд┐рдП рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрд╛рдо рдХрд┐рдпрд╛ (рдПрдбрдмреНрд▓реНрдпреВрд╕реА рдИрд╕реА 2 рдФрд░ рд╕реНрдерд╛рдиреАрдп рд╡рд░реНрдЪреБрдЕрд▓рдмреЙрдХреНрд╕ рд╡реАрдПрдо рдХреЗ рдЦрд┐рд▓рд╛рдл рдореЗрд░реЗ рдореБрдЯреНрдареА рднрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ, рдЕрдк-рдЯреВ-рдбреЗрдЯ ubuntu 16.04)ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ "рд╢рдЯрдбрд╛рдЙрди-рдЖрд░ рдЕрдм" рдиреЗ "рд░рд┐рдмреВрдЯ" рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд┐рдпрд╛ рдФрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдореИрдВрдиреЗ рдлреНрд░реАрдмреАрдПрд╕ рдФрд░ рдУрдкрдирдмреАрдбреАрдПрд╕ рдореИрди рдкреЗрдЬреЛрдВ рдкрд░ рдПрдХ рддреНрд╡рд░рд┐рдд рдирдЬрд╝рд░ рдбрд╛рд▓реА, рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ рд╢рдЯрдбрд╛рдЙрди рдХрдорд╛рдВрдб рд╣реИ рдЬреЛ рдЙрди рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдХрдорд╛рдВрдб "рд╢рдЯрдбрд╛рдЙрди -r +0" рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдХрд┐рд╕реА рднреА рдпреВрдирд┐рдХреНрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕ рдкрд░ "рд░рд┐рдмреВрдЯ" рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдорд╛рдВрдб рдХреЛ рдмрджрд▓рдиреЗ рдпрд╛ рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред (рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкрд╣рд▓реЗ рдмреАрдПрд╕рдбреА рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреА рд░рд┐рдкреЛрд░реНрдЯ рджреЗрдЦрдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреАред)
shutdown -r +0
рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдЪреВрдВрдХрд┐ рд░рд┐рдмреВрдЯ рдореИрдиреНрдпреБрдЕрд▓ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдореИрдВрдиреЗ рднреА рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ:
try:
sudo("shutdown -r +0", timeout=300)
except NetworkError:
pass
# in case the sudo times out during reboot
sleep(15)
рдпрд╣ рд╕рдм рд╣рд╛рде рд▓рд╣рд░рд╛рддреЗ рд╣реБрдП рднреА, рдЕрдЧрд▓реА рдЖрдЬреНрдЮрд╛ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рддрдХ рд▓рдЯрдХреА рд░рд╣реАред рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХрдиреЗрдХреНрд╢рди рдкреВрд▓ рдореГрдд рдХрдиреЗрдХреНрд╢рди рдкрд░ рдкрдХрдбрд╝ рд░рд╣рд╛ рд╣реИ (рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ)? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреНрдпрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ? рдХреНрдпрд╛ рдореИрдВ рдХрдиреЗрдХреНрд╢рди-рд╕реНрддрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
рджрд░рдЕрд╕рд▓, рдЖрдкрдХреЛ рдореМрдЬреВрджрд╛ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ reboot()
рд╣реЛрддрд╛ рд╣реИ:
https://github.com/fabric/fabric/blob/1.13.2/fabric/operations.py#L1289 -L1294
рдПрдХ рдкреБрд░рд╛рдиреЗ рдореБрджреНрджреЗ рдХреЛ рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдлреА, рдореИрдВ рдпрд╣ рднреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдПрд▓рдПрдХреНрд╕рд╕реА рдХрдВрдЯреЗрдирд░ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИред command="shutdown -r +0"
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ @ploxiln рдХреЗ рд╕реБрдЭрд╛рд╡ рдиреЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред
рдмреИрд╢ рд╕реНрдерд╛рдкрд┐рдд рдХреЗ рд╕рд╛рде FreeBSD 11.1 рдХреА рдПрдХ рдирдИ рд╕реНрдерд╛рдкрдирд╛ рдкрд░ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ:
reboot(wait=1)
рдкрд░рд┐рдгрд╛рдо:
Fatal error: sudo() received nonzero return code -1 while executing!
Requested: reboot
Executed: sudo -S -p 'sudo password:' /usr/local/bin/bash -l -c "reboot"
Aborting.
Traceback (most recent call last):
тАж
raise env.abort_exception(msg)
hosts.FabricException: sudo() received nonzero return code -1 while executing!
рдореИрдВрдиреЗ @ ambsw-technology рдФрд░ @ploxiln рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЪреАрдЬреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░
sudo('shutdown -r +0')
time.sleep(30)
fabric.state.connections.connect(env.host_string)
FYI рдХрд░реЗрдВ, рдореИрдВ рдЕрднреА рднреА рдЗрд╕реЗ 18.04.2 LTS рд╕рд░реНрд╡рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рджреЗрдЦрддрд╛ рд╣реВрдВред
рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдлрд┐рдХреНрд╕? 16.04 рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рднреА рд╣реЛ рд░рд╣реА рд╣реИ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
Ubuntu рдмрдЧ https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/1645002 рдХреЛ 16.10 рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди 16.04 рдореЗрдВ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдХрдм рд╣реЛрдЧрд╛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред
рдореЗрд░реЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдкреИрд░рд╛рдорд┐рдХреЛ / рдлреИрдмреНрд░рд┐рдХ рддреБрд░рдВрдд рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрддрд╛ рд╣реИ рдХрд┐ ssh рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдкреИрд░рд╛рдореАрдХреЛ / рдлреИрдмреНрд░рд┐рдХ рд░рд┐рдмреВрдЯ рдХрдорд╛рдВрдб рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдореВрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рддрд░рд╣ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рддрдХ рд▓рдЯрдХрд╛ рдирд╣реАрдВ рд╣реИред
рд╕рд╛рджрд╛
reboot()
рдиреЗ рд▓рдЧрд╛рддрд╛рд░ рдореЗрд░реЗ рд▓рд┐рдП AWS EC2 рдФрд░ рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╡рд░реНрдЪреБрдЕрд▓рдмреЙрдХреНрд╕ VM рдХреЗ рдЦрд┐рд▓рд╛рдл рдХрдИ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдПред (рдореИрдВ рд╣рдореЗрд╢рд╛ рдХреАрдлрд╛рдЗрд▓ рдСрд░реНрдЯ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддрд╛ рдерд╛ред)рдореИрдВрдиреЗ рдПрдХ рдЫреЛрдЯрд╛ рдФрд░ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдкрд╛рдпрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рдмрд┐рдирд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ:
рдореЗрд░реЗ рд▓рд┐рдП рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрд╛рдо рдХрд┐рдпрд╛ (рдПрдбрдмреНрд▓реНрдпреВрд╕реА рдИрд╕реА 2 рдФрд░ рд╕реНрдерд╛рдиреАрдп рд╡рд░реНрдЪреБрдЕрд▓рдмреЙрдХреНрд╕ рд╡реАрдПрдо рдХреЗ рдЦрд┐рд▓рд╛рдл рдореЗрд░реЗ рдореБрдЯреНрдареА рднрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ, рдЕрдк-рдЯреВ-рдбреЗрдЯ ubuntu 16.04)ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ "рд╢рдЯрдбрд╛рдЙрди-рдЖрд░ рдЕрдм" рдиреЗ "рд░рд┐рдмреВрдЯ" рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд┐рдпрд╛ рдФрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдореИрдВрдиреЗ рдлреНрд░реАрдмреАрдПрд╕ рдФрд░ рдУрдкрдирдмреАрдбреАрдПрд╕ рдореИрди рдкреЗрдЬреЛрдВ рдкрд░ рдПрдХ рддреНрд╡рд░рд┐рдд рдирдЬрд╝рд░ рдбрд╛рд▓реА, рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ рд╢рдЯрдбрд╛рдЙрди рдХрдорд╛рдВрдб рд╣реИ рдЬреЛ рдЙрди рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдХрдорд╛рдВрдб "рд╢рдЯрдбрд╛рдЙрди -r +0" рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдХрд┐рд╕реА рднреА рдпреВрдирд┐рдХреНрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕ рдкрд░ "рд░рд┐рдмреВрдЯ" рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдорд╛рдВрдб рдХреЛ рдмрджрд▓рдиреЗ рдпрд╛ рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред (рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкрд╣рд▓реЗ рдмреАрдПрд╕рдбреА рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреА рд░рд┐рдкреЛрд░реНрдЯ рджреЗрдЦрдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреАред)