рдкрд░реНрд▓ рдореЗрдВ рдЗрдХ рдмреЙрдЯ рд▓рд┐рдЦрдирд╛

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

рдореИрдВ рд╕реНрд╡рдпрдВ рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢реЛрдВ рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕реЗ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╡рд╣ рд╕рдм рдХреБрдЫ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдпрд╛рдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдЙрд╕реЗ рд╡рд╣ рдпрд╛рдж рдХрд░рдиреЗ рджреЗрдВ рдЬреЛ рд╡рд╣ рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд╣ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд▓рдд рд╡рд┐рдЪрд╛рд░ рд░рдЦ рд╕рдХрддрд╛ рд╣реИред



рдареАрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдмрд╛рдК рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдЕрдиреНрдп рд╡рд┐рд╖рдп рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИ - рдЗрдХреНрдХрд╛, рддрд╛рдХрд┐ рд╣рдореЗрдВ рдЗрд╢реНрдХ-рдмреЙрдЯ рдорд┐рд▓ рдЬрд╛рдПред







рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рд░рд╛рдХреНрд╖рд╕реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред





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



рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпреВрдирд┐рдХреНрд╕ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬрдиреНрдо рджреЗрддрд╛ рд╣реИред рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЕрдиреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИ - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдмрди рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд▓реЙрдиреНрдЪ - рдмрдЪреНрдЪреЗред рдпрджрд┐ рдкреИрд░реЗрдВрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ, рддреЛ рдмрдЪреНрдЪреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рднреА рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВред



рдЙрд╕реА рд╕рдордп, рдЖрдЗрдХ-рдмреЙрдЯ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐ рдЗрд╕реЗ рдХрд╣рд╛рдВ рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдХреНрдпрд╛ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд░реНрд╡рд░ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд┐рдпрд╛, bash рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдореИрдВрдиреЗ рдПрдХ рдмреЙрдЯ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ред рдореИрдВ рдмреИрд╢ рдФрд░ ssh рдХрдиреЗрдХреНрд╢рди рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдмреЙрдЯ рдХреЛ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ рдХрд┐ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред



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



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



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



рдЯреНрд░рд┐рдХ рдлрдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреЛрд░реНрдХ рдлрдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рд╡рд╣ рдПрдХ рдФрд░ рдПрдХ рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рддрд╛ рд╣реИред рдЙрдирдХреЗ рдмреАрдЪ рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдкрд╣рд▓рд╛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдерд╛, рдФрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рджреВрд╕рд░рд╛ рдПрдХ рдмрдЪреНрдЪрд╛ рд╣реИ, рдФрд░ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЖрддреНрдо-рдкрд╣рдЪрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдореИрдВ рдХреМрди рд╣реВрдВ?

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



рдирддреАрдЬрддрди, рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ demonization рдлрд╝рдВрдХреНрд╢рди рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:



sub Daemonize { <br/>

return if ( $^O eq 'MSWin32' ) ; # , <br/>

chdir '/' or die "Can't chdir to /: $!" ; # unmount <br/>

umask 0 ; # <br/>

open STDIN , '/dev/null' or die "Can't read /dev/null: $!" ; # <br/>

open STDOUT , '>/dev/null' or die "Can't write to /dev/null: $!" ; # <br/>

open STDERR , '>/dev/null' or die "Can't write to /dev/null: $!" ; # <br/>

defined ( my $pid = fork ) or die "Can't fork: $!" ; # fork <br/>

exit if $pid ; # , id <br/>

setsid or die "Can't start a new session: $!" ; # <br/>

} <br/>









рд╕рдВрджреЗрд╢ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг





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

рдФрд░ рдлрд┐рд░ рдпрд╣ рд╕рдм рдЖрдкрдХреА рдХрд▓реНрдкрдирд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ - рдЖрдк рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЕрдкрдиреА рдкрд╕рдВрдж рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рдЖрдк рдмрд╣реБрдд рд╕рд╛рд░реА рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддреЗ рд╣реИрдВ - рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬрд╛рд░реА рдХрд░рдиреЗ рд╕реЗ рд▓реЗрдХрд░ рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рддрдХред



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

рдмреЙрдЯ рдХреЛ рд╕рдордп-рд╕рдордп рдкрд░ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реЛрдЧреА рдФрд░ рдпрджрд┐ рдирдП рд╕рдВрджреЗрд╢ рдорд┐рд▓рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рднреЗрдЬреЗрдВред



рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ - рдкреНрд░рдкрддреНрд░ nnn.rrr рдХреА рдлрд╝реЛрд▓реНрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд╣рд╛рдБ nnn рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХрд╛ рдЖрдИрдХрд┐рди UIN рд╣реИ, рдФрд░ rrr рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдХрдИ рдмрд╛рд░ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдПрдХ рдирдВрдмрд░ рдкрд░ рдЧрд┐рд░рдиреЗ рдкрд░ рдлрд╛рдЗрд▓реЗрдВ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рди рд╣реЛрдВред



рдХреБрд▓ - рд╣рдореЗрдВ рдЗрдирдмреЙрдХреНрд╕ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрдВ рдЗрдВрдЧрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рднреЗрдЬреЗрдВред



sub CheckTasks { <br/>

# <br/>

my ( $file , $path , $text , $size , $recipient ) ; <br/>

<br/>

$path = "~username/icq/icq_tasks" ; # <br/>

<br/>

opendir DIR , $path ; <br/>

for $file ( grep /^\d+\.\d+$/ , readdir DIR ) { # nnn.rrr <br/>

$file =~/^ ( \d + ) \ . \d + $/ ; <br/>

$recipient = $1 ; # - UIN <br/>

$size = ( stat ( "$path/$file" ) ) [ 7 ] ; <br/>

if ( $size > 0 && $size < 200 ) { # <br/>

$text = ReadFile ( "$path/$file" ) ; # <br/>

unlink ( "$path/$file" ) ; # <br/>

$oscar -> send_im ( $recipient , $text ) ; # . , oscar - <br/>

} <br/>

} <br/>

} <br/>









рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо





рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдп, рд╣рдордиреЗ рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдХрд┐рдпрд╛ рд╣реИред рдЕрдм рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрдирд╛рддреЗ рд╣реИрдВред



ICQ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдиреЗрдЯ :: OSCAR рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЙрдбреНрдпреВрд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛ, рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░реЗ, рдФрд░ рд╕рдордп-рд╕рдордп рдкрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдХрд┐рдХ рдХрд░реЗ рддрд╛рдХрд┐ рдпрд╣ рд╣рдореЗрдВ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рди рдХрд░реЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдиреЗрдХреНрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдФрд░ рдмреНрд░реЗрдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдФрд░ рд╣рд╛рдВ, рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред



рдЖрдЗрдП рдЬрд╛рдиреЗ:



#!/usr/bin/perl -w <br/>

<br/>

use Net :: OSCAR ; # <br/>

use strict ; # strict <br/>

use POSIX qw ( setsid ) ; # POSIX, <br/>

<br/>

Daemonize ( ) ; # <br/>

<br/>

my ( $UIN , $PASSWORD , $oscar , $t ) ; <br/>

<br/>

$UIN = '123456' ; # UIN <br/>

$PASSWORD = 'mypass' ; # UIN <br/>

<br/>

$oscar = Net :: OSCAR -> new ( ) ; # icq <br/>

$oscar -> set_callback_im_in ( \&send_answer ) ; <br/>

# - <br/>

$t = 0 ; # <br/>

<br/>

while ( 1 ) { # <br/>

if ( ! $oscar -> is_on && ( time ( ) - $t ) > 120 ) { # 2 ! <br/>

$oscar -> signon ( $UIN , $PASSWORD ) ; # <br/>

$t = time ( ) ; # <br/>

} <br/>

$oscar -> do_one_loop ( ) ; # <br/>

CheckTasks ( ) if ( $oscar -> is_on ) ; # - <br/>

sleep ( 5 ) ; # 5 , <br/>

}








рдореИрдВ рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рдКрдВрдЧрд╛:



рдореЙрдбреНрдпреВрд▓ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╢ рдХреА рдкреНрд░рд╛рдкреНрддрд┐ рд╣реИред рддрд╛рдХрд┐ рдмреЙрдЯ рдРрд╕реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рднреЗрдЬ рд╕рдХреЗ, рд╣рдо рдЗрд╕ рдШрдЯрдирд╛ рдкрд░ send_answer () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рд▓рдЯрдХрд╛рддреЗ рд╣реИрдВ:



$ рдСрд╕реНрдХрд░ -> set_callback_im_in (\ & send_answer)



рдпрд╣ рдЗрд╕ рддрд░рд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ:



sub send_answer ( ) { <br/>

my ( $oscar , $sender , $msg ) = @_ ; <br/>

# - <br/>

# , <br/>

if ( $msg eq "quit" ) { # . - <br/>

$oscar -> signoff ( ) ; # <br/>

exit ( ) ; # - <br/>

} <br/>

$oscar -> send_im ( $sender , ' , , .' ) ; <br/>

# <br/>

}





sub send_answer ( ) { <br/>

my ( $oscar , $sender , $msg ) = @_ ; <br/>

# - <br/>

# , <br/>

if ( $msg eq "quit" ) { # . - <br/>

$oscar -> signoff ( ) ; # <br/>

exit ( ) ; # - <br/>

} <br/>

$oscar -> send_im ( $sender , ' , , .' ) ; <br/>

# <br/>

}









рддреЛ, рд╣рдо рдПрдХ рдЗрдирдмрд╛рдЙрдВрдб рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЕрдВрддрд╣реАрди рд▓реВрдк рдореЗрдВ рдЖрдЙрдЯрдмрд╛рдЙрдВрдб рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВред рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдСрдирд▓рд╛рдЗрди рд╣реИрдВ, $ рдСрд╕реНрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ-> is_on рдзреНрд╡рдЬ

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



рдпрджрд┐ рд╣рдо рдСрдирд▓рд╛рдЗрди рд╣реИрдВ, рддреЛ рд╣рдо рд╕рдордп-рд╕рдордп рдкрд░ $ рдСрд╕реНрдХрд░-> do_one_loop () рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдорд╛рд░реЗ рдмреЙрдЯ рдХреЛ рд▓реЙрдЧ рдЗрди рд░рдЦрддрд╛ рд╣реИред



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



рд╣рдо рд░рдЪрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдмрдЪрд╛рддреЗ рд╣реИрдВ, рдЪрд▓рд╛рддреЗ рд╣реИрдВред рд╕рд░рд▓рддрдо рдЗрдХ рдмреЙрдЯ рддреИрдпрд╛рд░ рд╣реИ! рдореИрдВ рд╕рд░реНрд╡рд░ рд╕реЗ рдореБрдЭреЗ рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕реЗ рдмреЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред



рдЕрдм рдХреНрдпрд╛?





рдЗрд╕ рдмреЙрдЯ рдХреА рдХрдорд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ, рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдиреЗрдЯ :: OSCAR рдореЙрдбреНрдпреВрд▓ рдСрдлрд╝рд▓рд╛рдЗрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред



рд╣реЛрдорд╡рд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ:

- рдЪреМрдереЗ рдкрд░ - рдкрд╣рд▓реЗ рд▓реЙрдиреНрдЪ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдмреЙрдЯ рдХреЛ рдЖрдИрд╕реАрдХреНрдпреВ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрдЬрд╛рдп 2 рдорд┐рдирдЯ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ

- рдкреНрд▓рд╕ рдХреЗ рд╕рд╛рде рдЪрд╛рд░ рдкрд░ - ReadFile рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗрдВ

- рдкрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП - рдиреЗрдЯ :: OSCAR рдкреНрд░рд▓реЗрдЦрди рдХреЛ рд╕рдордЭреЗрдВ, рдмреЙрдЯ рдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдЦрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдСрдлрд╝рд▓рд╛рдЗрди рд╣реИ рдФрд░ рдЙрд╕реЗ рдСрдлрд╝рд▓рд╛рдЗрди рд╕рдВрджреЗрд╢ рди рднреЗрдЬреЗрдВред



All Articles