
рдореЗрд░рд╛ рдореБрдЦреНрдп рдХрд╛рдо рд╣реИ, рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕рд┐рд╕реНрдЯрдо рдХреА рддреИрдирд╛рддреА, рдпрд╛рдиреА, рдореИрдВ рдЗрди рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рдмрд┐рддрд╛рддрд╛ рд╣реВрдВ:
- рдпрд╣ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП рдирд╣реАрдВред рдХреНрдпреЛрдВ?
- рдХрд▓ рдЗрд╕ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЖрдЬ рдирд╣реАрдВред рдХреНрдпреЛрдВ?
рдпрд╣ рдПрдХ рддрд░рд╣ рдХрд╛ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╣реИ рдЬреЛ рдирд┐рдпрдорд┐рдд рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбреАрдмрдЧрд┐рдВрдЧ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рдбреАрдмрдЧрд┐рдВрдЧ рдХреЛрдб рд▓реЙрдЬрд┐рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдбреАрдмрдЧрд┐рдВрдЧ рдХреЛрдб рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рднрд▓реЗ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХреА рдЬрдбрд╝ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдЧрд▓рддреА рд╣реЛ, рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдПрдХ рдорд╢реАрди рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдкрд░ рдирд╣реАрдВ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдорд╛рдорд▓рд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рд╣реИред
рдЗрд╕рд▓рд┐рдП gdb рдЬреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдбрд┐рдмрдЧрд┐рдВрдЧ рдЯреВрд▓ рдХреЗ рдмрдЬрд╛рдп, рдореЗрд░реЗ рдкрд╛рд╕ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреВрд▓ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рд╕реЗрдЯ рд╣реИред рдФрд░ "рдХреНрдпреЛрдВ рдпрд╣ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ" рдЬреИрд╕реА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдкрд╕рдВрджреАрджрд╛ рдЙрдкрдХрд░рдг рд╣реИ? рд╕реНрдЯреНрд░реЗрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрдЯреНрд░реЗрд╕ рдХреНрдпрд╛ рд╣реИ?
рд╕реНрдЯреНрд░реЗрд╕ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдЯреНрд░реЗрд╕ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕рдорд╛рди рдбрд┐рдмрдЧрд┐рдВрдЧ рдЪрд┐рдкреНрд╕ рдХреЛ рдЕрдиреНрдп рд╕рд┐рд╕реНрдЯрдо ( DTrace рдпрд╛ ktrace ) рдХреЗ рд▓рд┐рдП рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдШреБрдорд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореБрдЦреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдХрд┐рд╕реА рднреА рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╕реНрдЯреНрд░реЗрд╕ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдбрдВрдк рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рднреЗрдЬреЗрдЧрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рд╕рдВрднрд╡рддрдГ рд╕реНрдЯреНрд░реЗрд╕ рдХреЛ рдЦреБрдж рд╣реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛):
$ strace echo Hello ...Snip lots of stuff... write(1, "Hello\n", 6) = 6 close(1) = 0 close(2) = 0 exit_group(0) = ? +++ exited with 0 +++
рдпреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреНрдпрд╛ рд╣реИрдВ? рдпрд╣ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдХрд░реНрдиреЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░рд╣ рдХрд╛ рдПрдкреАрдЖрдИ рд╣реИред рдПрдХ рдмрд╛рд░, рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рдкрд╛рд╕ рдЙрд╕ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддрдХ рд╕реАрдзреА рдкрд╣реБрдВрдЪ рдереА рдЬрд┐рд╕ рдкрд░ рдЙрд╕рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ред рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдХреБрдЫ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡реАрдбрд┐рдпреЛ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рдФрд░ / рдпрд╛ рдореЗрдореЛрд░реА рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдорд▓реНрдЯреАрдЯрд╛рд╕реНрдХрд┐рдВрдЧ рдХрдВрдкреНрдпреВрдЯрд░ рд╕рд┐рд╕реНрдЯрдо рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛ рдЧрдП, рддреЛ рдЕрд░рд╛рдЬрдХрддрд╛ рдиреЗ рд╢рд╛рд╕рди рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдиреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рд▓рдбрд╝рд╛рдИ рд▓рдбрд╝реАред рдПрдХ рдЖрд╡реЗрджрди рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреВрд╕рд░реЛрдВ рдХреЗ рдХрд╛рдо рдХреЛ рдиреАрдЪреЗ рд▓рд╛ рд╕рдХрддреА рд╣реИрдВ, рдЕрдЧрд░ рдкреВрд░реА рдкреНрд░рдгрд╛рд▓реА рдирд╣реАрдВред рддрдм рд╕реАрдкреАрдпреВ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдореЛрдб (рдпрд╛ "рд░рд┐рдВрдЧ рдкреНрд░реЛрдЯреЗрдХреНрд╢рди") рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред рдХрд░реНрдиреЗрд▓ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛: рдЗрд╕рдиреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддрдХ рдкреВрд░реНрдг рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХреА, рдХрдо рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд░реНрдиреЗрд▓ рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣реБрдБрдЪ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рдерд╛ред
рдмрд╛рдЗрдирд░реА рд╕реНрддрд░ рдкрд░, рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдорд╛рдирдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдХ рдЖрд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╛рдиреА POSIX C рдорд╛рдирдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд▓рд┐рдЦрдиреЗ () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд░рд╛рдЗрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдб рд╣реЛрддреЗ рд╣реИрдВред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдЙрд╕рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг (рдХрдВрдкреНрдпреВрдЯрд░ рд╕рд┐рд╕реНрдЯрдо) рдХреЗ рдмреАрдЪ рдХреЛрдИ рднреА рдмрд╛рддрдЪреАрдд рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЬрдм рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдПрдХ рдорд╢реАрди рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рдкрд░ рдирд╣реАрдВ, рддреЛ рдЯреНрд░реЗрд╕рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдЙрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд┐рдВрджреБрдУрдВ рдХреА рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ, рдЬрд┐рдирдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- рдХрдВрд╕реЛрд▓ I / O
- рдиреЗрдЯрд╡рд░реНрдХ рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ
- рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдПрдХреНрд╕реЗрд╕ рдФрд░ рдлрд╝рд╛рдЗрд▓ I / O
- рдкреНрд░рдХреНрд░рд┐рдпрд╛ / рдзрд╛рдЧрд╛ рдЬреАрд╡рдирдХрд╛рд▓ рдкреНрд░рдмрдВрдзрди
- рдирд┐рдореНрди рд╕реНрддрд░ рдХрд╛ рд╕реНрдореГрддрд┐ рдкреНрд░рдмрдВрдзрди
- рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ
рд╕реНрдЯреНрд░реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░реЗрдВ?
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпреВрдЬрд░ рд╕реНрдкреЗрд╕ рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рд╕реНрдЯреНрд░реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпреВрдЬрд░ рд╕реНрдкреЗрд╕ рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕рдВрдХрд▓рд┐рдд, рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╛рдпрдерди рдЬреИрд╕реА рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рд░рдирдЯрд╛рдЗрдо рдФрд░ рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╢реЛрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рд╕рднреА рд╡реИрднрд╡ рдореЗрдВ, рд╕реНрдЯреНрд░реЗрд╕ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рд╕реНрд╡рдпрдВ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдорд╢реАрди рдкрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЪрд╛рдирдХ рджреВрд╕рд░реЗ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ, рдлрд╛рдЗрд▓реЛрдВ, рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрд╕реЗрдЬ рджреЗрддрд╛ рд╣реИ рдпрд╛ рдХреБрдЫ рдЖрджреЗрд╢реЛрдВ рдпрд╛ рдХреБрдЫ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕ ... рдпрд╣ рдПрдХ рджрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрддрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдпрд╣ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рддреНрдпрд╛рдкрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдЬреИрд╕реЗ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдореБрджреНрджреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдорддреМрд░ рдкрд░ рд╕реНрдЯреНрд░реЗрд╕ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдХрднреА-рдХрднреА рд▓реЗрдЯреНрд░реЗрд╕, рдФрд░ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЯреВрд▓ (рдЬреИрд╕реЗ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрдкрдирд╕реН рдХрдорд╛рдВрдб рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓)ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рд╕рд░реНрд╡рд░ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЯреНрд░реЗрд╕рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЛ рдЕрдХреНрд╕рд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рд╕рд╣реА рдЯреВрд▓рдХрд┐рдЯ рдЪреБрдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╕рд░рд▓ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЙрджрд╛рд╣рд░рдг
рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдк рднрдпрд╛рдирдХ foo рд╕рд░реНрд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рдмрд╛рдд рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ:
$ foo Error opening configuration file: No such file or directory
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╡рд╣ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреА рдЧрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдвреВрдВрдв рд╕рдХрд╛ред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрднреА-рдХрднреА, рдЬрдм рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╕реНрдерд╛рди рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдпрджрд┐ рдЖрдк рдПрдХ рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рд╖реНрдард╛рдкрди рдЧрд╛рдЗрдб рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рджреВрд╕рд░реЗ рдореЗрдВ рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдирд╣реАрдВ рдкрд╛рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдЙрдореНрдореАрдж рдереАред рдпрд╣ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреБрдЫ рд╕реЗрдХрдВрдб рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП рдпрджрд┐ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрд╣рд╛рдВ рджреЗрдЦрдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рдХрд╣рддрд╛ рд╣реИред рддреЛ рдХрд╣рд╛рдБ рджреЗрдЦрдирд╛ рд╣реИ?
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реНрд░реЛрдд рдХреЛрдб рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдЕрдЪреНрдЫрд╛ рдмреИрдХрдЕрдк рдкреНрд▓рд╛рди, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВред рдЖрдк gdb рдЬреИрд╕реЗ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдбрд┐рдмрдЧрд░ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реИ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рд╕реНрдЯреНрд░реЗрд╕ ред
рд╕реНрдЯреНрд░реЗрд╕ рдХрд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдмреЗрдорд╛рдиреА рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЯреНрд░реЗрд╕ рдкрд░рд┐рдгрд╛рдо рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП -o рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ:
$ strace -o /tmp/trace foo Error opening configuration file: No such file or directory $ cat /tmp/trace execve("foo", ["foo"], 0x7ffce98dc010 /* 16 vars */) = 0 brk(NULL) = 0x56363b3fb000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=25186, ...}) = 0 mmap(NULL, 25186, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2f12cf1000 close(3) = 0 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260A\2\0\0\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=1824496, ...}) = 0 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2f12cef000 mmap(NULL, 1837056, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2f12b2e000 mprotect(0x7f2f12b50000, 1658880, PROT_NONE) = 0 mmap(0x7f2f12b50000, 1343488, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x22000) = 0x7f2f12b50000 mmap(0x7f2f12c98000, 311296, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16a000) = 0x7f2f12c98000 mmap(0x7f2f12ce5000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b6000) = 0x7f2f12ce5000 mmap(0x7f2f12ceb000, 14336, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2f12ceb000 close(3) = 0 arch_prctl(ARCH_SET_FS, 0x7f2f12cf0500) = 0 mprotect(0x7f2f12ce5000, 16384, PROT_READ) = 0 mprotect(0x56363b08b000, 4096, PROT_READ) = 0 mprotect(0x7f2f12d1f000, 4096, PROT_READ) = 0 munmap(0x7f2f12cf1000, 25186) = 0 openat(AT_FDCWD, "/etc/foo/config.json", O_RDONLY) = -1 ENOENT (No such file or directory) dup(2) = 3 fcntl(3, F_GETFL) = 0x2 (flags O_RDWR) brk(NULL) = 0x56363b3fb000 brk(0x56363b41c000) = 0x56363b41c000 fstat(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0x8), ...}) = 0 write(3, "Error opening configuration file"..., 60) = 60 close(3) = 0 exit_group(1) = ? +++ exited with 1 +++
рд╕реНрдЯреНрд░реЗрд╕ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдкреВрд░реЗ рдкрд╣рд▓реЗ рдкреГрд╖реНрда рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рд▓реЙрдиреНрдЪ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рддреИрдпрд╛рд░реА рд╣реЛрддреА рд╣реИред (рдирд┐рдореНрди рд╕реНрддрд░ рдХреА рдореЗрдореЛрд░реА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рдПрдордПрдордПрдкреА , рдПрдордкреНрд░реЛрдХреНрдЯ , рдмреНрд░реИрдХ рдХреЙрд▓ рд╣реИрдВред) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди, рд╕реНрдЯреНрд░реЗрд╕ рдЖрдЙрдЯрдкреБрдЯ рд╕рдмрд╕реЗ рдЕрдВрдд рд╕реЗ рдкрдврд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдиреАрдЪреЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рд╣реИ, рдЬреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рдо рдКрдкрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рдкрд╣рд▓реА рдЧрд▓рдд рдкреНрд░рдгрд╛рд▓реА рдХреЙрд▓ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ - рдПрдХ рдУрдкрдиреИрдЯ рдХреЙрд▓ рдЬреЛ рдПрдХ ENOENT рддреНрд░реБрдЯрд┐ ("рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╣реАрдВ рдорд┐рд▓реА") рдХреЛ рдлреЗрдВрдХрддрд╛ рд╣реИ , /etc/foo/config.json рдЦреЛрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣рд╛рдВ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЭреВрда рдмреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЙрджрд╛рд╣рд░рдг рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ 90% рд╕рдордп рдореИрдВ рд╕реНрдЯреНрд░реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдХреБрдЫ рднреА рдХрд░рдирд╛ рдЬреНрдпрд╛рджрд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ рдФрд░ рди рд╣реА рдХрд░рдирд╛ рд╣реИред рдиреАрдЪреЗ рдПрдХ рд╕рдВрдкреВрд░реНрдг рдЪрд░рдг-рджрд░-рдЪрд░рдг рдбрд┐рдмрдЧрд┐рдВрдЧ рдЧрд╛рдЗрдб рд╣реИ:
- рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реЗ рдПрдХ рд╕реНрд▓реЗрдЯреЗрдб рд╕рд┐рд╕реНрдЯрдо-рд╡рд╛рдИ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╕реЗ рдирд┐рд░рд╛рд╢
- рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╕реНрдЯреНрд░реЗрд╕ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ
- рдЯреНрд░реЗрд╕ рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- рдЬрдм рддрдХ рдЖрдк рдкрд╣рд▓реЗ рд╡рд┐рдлрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рд╕реЗ рдЯрдХрд░рд╛ рдирд╣реАрдВ рдЬрд╛рддреЗ, рддрдм рддрдХ рдЕрдзрд┐рдХ рдЬрд╛рдПрдВ
рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЪрд░рдг 4 рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рджрд┐рдЦрд╛рдПрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реБрдЖред
рдпреБрдХреНрддрд┐рдпрд╛рдБ
рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЖрдкрдХреЛ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рд╕реНрдЯреНрд░реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЧреБрд░ рдмрддрд╛рдКрдВрдЧрд╛:
рдЖрджрдореА рддреБрдореНрд╣рд╛рд░рд╛ рджреЛрд╕реНрдд рд╣реИ
рдХрдИ * рдирд┐рдХреНрд╕ рд╕рд┐рд╕реНрдЯрдореЛрдВ рдкрд░, рдХрд░реНрдиреЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдореИрди рд╕рд┐рд╕реНрдХреЙрд▓ рдЪрд▓рд╛рдХрд░ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЖрдкрдХреЛ brk (2) рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреА, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк рдЖрджрдореА 2 brk рдЪрд▓рд╛рдХрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдЫреЛрдЯреА рд╕реА рд░реЗрдХ: рдореИрди 2 рдХрд╛рдВрдЯрд╛ рдореБрдЭреЗ GNU libc рдореЗрдВ рдлреЛрд░реНрдХ () рд╢реЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЗрдЬ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХреНрд▓реЛрди () рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд╛рдВрдЯрд╛ рдХреЙрд▓ рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдПрдХ рд╕рдорд╛рди рд░рд╣рддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдк рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдХрд╛рдВрдЯрд╛ () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдиреБрд░реЗрдЦрдг рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ - рдореБрдЭреЗ рдХрд╛рдВрдЯрд╛ рдХреЙрд▓ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛, рдЙрдирдХреЗ рдмрдЬрд╛рдп рдХреНрд▓реЛрди () рд╣реЛрдЧрд╛ ред рдпрджрд┐ рдЖрдк рд╕реНрдЯреНрд░реЗрд╕ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рд╕реНрд░реЛрдд рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдРрд╕реА рд░реЗрдХ рдХреЗрд╡рд▓ рднреНрд░рдорд┐рдд рд╣реЛрддреА рд╣реИред
рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП -o рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рд╕реНрдЯреНрд░реЗрд╕ рд╡реНрдпрд╛рдкрдХ рдЖрдЙрдЯрдкреБрдЯ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЯреНрд░реЗрд╕ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣реИ)ред рдФрд░ рдпрд╣ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╕реНрдЯреНрд░реЗрд╕ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рднреНрд░рдорд┐рдд рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдЕрдзрд┐рдХ рддрд░реНрдХ рдбреЗрдЯрд╛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП -s рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдЖрдкрдиреЗ рд╢рд╛рдпрдж рджреЗрдЦрд╛ рдХрд┐ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ рдЙрдкрд░реЛрдХреНрдд рдЯреНрд░реЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдЯреНрд░реАрд░ рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рддрд░реНрдХ рдХреЗ рдкрд╣рд▓реЗ 32 рдмрд╛рдЗрдЯреНрд╕ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╕реНрдЯреНрд░реЗрд╕ рдХреЙрд▓ рдореЗрдВ -s 128 рдЬреИрд╕реЗ рдХреБрдЫ рдЬреЛрдбрд╝реЗрдВред
-рдореИрдВ рдЯреНрд░реИрдХрд┐рдВрдЧ рдлрд╛рдЗрд▓ \ _ рд╕реЙрдХреЗрдЯреНрд╕ рдЖрджрд┐ рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрддрд╛ рд╣реВрдВред
"рд╕рдм рдХреБрдЫ рдПрдХ рдлрд╛рдЗрд▓ рд╣реИ" рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ * рдирд┐рдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдлрд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА I / O рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреЗ рд╣реИрдВ, рдЪрд╛рд╣реЗ рд╡рд╣ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░, рдпрд╛ рдЗрдВрдЯрд░рдкреНрд░реЛрд╕реЗрд╕ рдЪреИрдирд▓ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛред рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЗ рдЯреНрд░реЗрд╕ рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рдкрдврд╝рддреЗ рдФрд░ рд▓рд┐рдЦрддреЗ рд╣реБрдП рджреЗрдЦрддреЗ рд╣реИрдВ рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
-U рдСрдкрд░реЗрдЯрд░ рдХреЛ рдЬреЛрдбрд╝рдХрд░, рдЖрдк рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рдПрдиреЛрдЯреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд▓ рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕ рдмрд╛рдд рдкрд░ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИред
рдкрд╣рд▓реЗ рд╕реЗ рдЪрд▓ рд░рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВ -p **
рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛рдПрдЧрд╛, рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ 1337 рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ (рдорд╛рди рдХреЗ рдирд┐рд╖реНрдХрд░реНрд╖ рд╕реЗ), рддреЛ рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
$ strace -p 1337 ...system call trace output...
рд╢рд╛рдпрдж рдЖрдкрдХреЛ рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдХреА рдЬрд░реВрд░рдд рд╣реИред
рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП -f рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдЯреНрд░реЗрд╕ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЬрдиреНрдо рджреЗрддреА рд╣реИ, рддреЛ рдЖрдк рдЪрд╛рдЗрд▓реНрдб рдкреНрд░реЛрд╕реЗрд╕ рдХреЛ рд╕реНрдкреЙрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЪрд╛рдЗрд▓реНрдб рдкреНрд░реЛрд╕реЗрд╕ рдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐ рдЪрд╛рдЗрд▓реНрдб рдкреНрд░реЛрд╕реЗрд╕ рдореЗрдВ рд╣реИ, -f рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рддреЛ рдпрд╣ рдЙрд╕рдХреЗ рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛ред рдЗрд╕рдХрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдирд┐рд╖реНрдХрд░реНрд╖ рдЖрдкрдХреЛ рдФрд░ рднреА рднреНрд░рдорд┐рдд рдХрд░реЗрдЧрд╛ред рдЬрдм рд╕реНрдЯреНрд░реЗрд╕ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдпрд╛ рдПрдХ рдереНрд░реЗрдб рдХреЛ рдЯреНрд░реЗрд╕ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреЙрд▓ рдЗрд╡реЗрдВрдЯ рдХреА рдПрдХ рдПрдХрд▓ рд╕реНрдЯреНрд░реАрдо рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдЬрдм рдпрд╣ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕рдВрднрд╡рддрдГ <рдЕрдзреВрд░рд╛ ...> рд╕рдВрджреЗрд╢ рджреНрд╡рд╛рд░рд╛ рдмрд╛рдзрд┐рдд рдХреЙрд▓ рдХреА рд╢реБрд░реБрдЖрдд рджреЗрдЦреЗрдВрдЧреЗ, рдлрд┐рд░ рдЕрдиреНрдп рдирд┐рд╖реНрдкрд╛рджрди рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА <... рдлрд╝реЛрдХрд╕реЙрд▓ reseded> рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рдХрд╛ рдЕрдВрддред рдпрд╛, -F рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде-рд╕рд╛рде (рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░реЗрд╕ рдореИрдиреБрдЕрд▓ рджреЗрдЦреЗрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рдЯреНрд░реЗрд╕ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЕрд▓рдЧ рдХрд░реЗрдВред
-E рдХреЗ рд╕рд╛рде рдЯреНрд░реЗрд╕ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВ
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЯреНрд░реЗрд╕ рдкрд░рд┐рдгрд╛рдо рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХрд╛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИред -E рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде, рдЖрдк рдЯреНрд░реЗрд╕ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ( рд╕реНрдЯреНрд░реЗрд╕ рдореИрдиреБрдЕрд▓ рджреЗрдЦреЗрдВ)ред рдореБрдЦреНрдп рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЯреНрд░реЗрд╕ рдЪрд▓рд╛рдирд╛ рдкреВрд░реНрдг рдЯреНрд░реЗрд╕ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬрд╝ рд╣реИ, рдФрд░ рдлрд┐рд░ grep ред рд╕рдЪ рдХрд╣реВрдВ рддреЛ, рдореБрдЭреЗ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИред
рд╕рднреА рдЧрд▓рддрд┐рдпрд╛рдБ рдмреБрд░реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ
рдПрдХ рд╕рд░рд▓ рдФрд░ рдЖрдо рдЙрджрд╛рд╣рд░рдг рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИ рдЬреЛ рдПрдХ рд╕рд╛рде рдХрдИ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИ, рдЬреИрд╕реЗ рдПрдХ рд╢реЗрд▓ рдХреА рддрд▓рд╛рд╢ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЯреЛрдХрд░реА / рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рд╣реЛрддреА рд╣реИ:
$ strace sh -c uname ... stat("/home/user/bin/uname", 0x7ffceb817820) = -1 ENOENT (No such file or directory) stat("/usr/local/bin/uname", 0x7ffceb817820) = -1 ENOENT (No such file or directory) stat("/usr/bin/uname", {st_mode=S_IFREG|0755, st_size=39584, ...}) = 0 ...
рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╕реЗ рдкрд╣рд▓реЗ "рдЕрдВрддрд┐рдо рдЕрд╕рдлрд▓ рдЕрдиреБрд░реЛрдз" рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдмрд╣реБрдд рдЕрдВрдд рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИред
рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЧрд╛рдЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ
C рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдХреЙрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рдкрддрд▓реА рд╕рддрд╣ рдкрд░рдд рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдХрдо рд╕реЗ рдХрдо рд╕реА рдореЗрдВ рдХреИрд╕реЗ рдФрд░ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╣ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдЯреНрд░реЗрд╕ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХреЙрд▓ рдбреАрдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рдЙрд╕реА рдХреНрд▓рд╛рд╕рд┐рдХ рдмреАрдЬрд╛ рдХреЗ "рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЧрд╛рдЗрдб" рдХреЛ рджреЗрдЦреЗрдВ ред
рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЙрджрд╛рд╣рд░рдг
рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд╣рд╛ рд╣реИ рдХрд┐ рд╕рд░рд▓ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреБрдЫ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд╕реНрдЯреНрд░реЗрд╕ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрднреА-рдХрднреА рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬрд╛рдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд╛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред
bcron рдПрдХ рдХрд╛рд░реНрдп рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЕрдиреБрд╕реВрдЪрдХ рд╣реИ, рдЬреЛ * nix cron daemon рдХрд╛ рдПрдХ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдпрд╣ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдХреЛрдИ рд╢реЗрдбреНрдпреВрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣реА рд╣реЛрддрд╛ рд╣реИ:
# crontab -e -u logs bcrontab: Fatal: Could not create temporary file
рдареАрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП bcron рдиреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдФрд░ рд╡рд╣ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдорд╛рдирддрд╛ред рд╕рдВрднрд╛рд▓рдирд╛ :
# strace -o /tmp/trace crontab -e -u logs bcrontab: Fatal: Could not create temporary file # cat /tmp/trace ... openat(AT_FDCWD, "bcrontab.14779.1573691864.847933", O_RDONLY) = 3 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f82049b4000 read(3, "#Ansible: logsagg\n20 14 * * * lo"..., 8192) = 150 read(3, "", 8192) = 0 munmap(0x7f82049b4000, 8192) = 0 close(3) = 0 socket(AF_UNIX, SOCK_STREAM, 0) = 3 connect(3, {sa_family=AF_UNIX, sun_path="/var/run/bcron-spool"}, 110) = 0 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f82049b4000 write(3, "156:Slogs\0#Ansible: logsagg\n20 1"..., 161) = 161 read(3, "32:ZCould not create temporary f"..., 8192) = 36 munmap(0x7f82049b4000, 8192) = 0 close(3) = 0 write(2, "bcrontab: Fatal: Could not creat"..., 49) = 49 unlink("bcrontab.14779.1573691864.847933") = 0 exit_group(111) = ? +++ exited with 111 +++
рдмрд╣реБрдд рд╣реА рдЕрдВрдд рдореЗрдВ, рдПрдХ рд▓реЗрдЦрди рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рдХреБрдЫ рдЕрд▓рдЧ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХреЛрдИ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрддреА рд╣реИред рджреВрд╕рд░реЗ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдХрд┐рд╕реА рдиреЗ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкрдврд╝рд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрд╕рд▓реА рд╕рдорд╕реНрдпрд╛ рдХрд╣реАрдВ рдФрд░ рд╣реИ, рдФрд░ bcrontab рд╕рд┐рд░реНрдл рд╕рдВрджреЗрд╢ рдмрдЬрд╛рддрд╛ рд╣реИред
рдЕрдЧрд░ рдЖрдк рдЖрджрдореА рдХреЛ 2 рдкрдврд╝рддреЗ рд╣реБрдП рджреЗрдЦрддреЗ рд╣реИрдВ , рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрд╣рд▓рд╛ рддрд░реНрдХ (3) рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд╣реИ рдЬреЛ * nix рд╕рднреА I / O рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдХреИрд╕реЗ рдкрддрд╛ рдХрд░реЗрдВ рдХрд┐ рдХреМрди рд╕реА рдлрд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ 3 рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИ? рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк -u рдСрдкрд░реЗрдЯрд░ (рдКрдкрд░ рджреЗрдЦреЗрдВ) рдХреЗ рд╕рд╛рде рд╕реНрдЯреНрд░реАрдо рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдРрд╕реА рдЪреАрдЬреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯреНрд░реЗрд╕ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдкрдврд╝рдирд╛ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рдЬрд╛рдирдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИред
рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХрд╛ рд╕реНрд░реЛрдд рдХрдИ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдпрд╣ рд╕рдм рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрдВрд╕реЛрд▓, рдиреЗрдЯрд╡рд░реНрдХ рд╕реЙрдХреЗрдЯ, рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдпрд╛ рдХреБрдЫ рдФрд░) рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХреЙрд▓рд┐рдВрдЧ 3 (рдЯреА) рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реЛрдВ ред) рдЯреНрд░реЗрд╕ рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ "= 3" рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ)ред рдирддреАрдЬрддрди, рдЙрдирдореЗрдВ рд╕реЗ 2 рд╣реИрдВ: рдмреАрдЪ рдореЗрдВ рдмрд╣реБрдд рдКрдкрд░ рдФрд░ рд╕реЙрдХреЗрдЯ рдкрд░ рдУрдкрдиреИрдЯ ред Openat рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рдж (3) рдмрдВрдж рд╣реЛрдиреЗ рд╕реЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдпрд╣ рдлрд┐рд░ рд╕реЗ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рд╣реИред (рд░реЗрдХ: рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рд╡реЗ рдЦреБрд▓реЗ рдФрд░ рдмрдВрдж рд╣реЛрдВ)ред рд╕реЙрдХреЗрдЯ () рдХреЙрд▓ рдЙрдкрдпреБрдХреНрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдВрддрд┐рдо рд╣реИ () , рдФрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╕реЙрдХреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ bcrontab рдХреБрдЫ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдкрде / var / run / bcron-spool рдХреЗ рд╕рд╛рде рдпреВрдирд┐рдХреНрд╕ рдбреЛрдореЗрди рд╕реЙрдХреЗрдЯ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред
рддреЛ, рдЖрдкрдХреЛ рджреВрд╕рд░реА рдУрд░ рдпреВрдирд┐рдХреНрд╕ рд╕реЙрдХреЗрдЯ рд╕реЗ рдЬреБрдбрд╝реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдирд┐рдлреНрдЯреА рдЯреНрд░рд┐рдХ рдХреЗ рдХреБрдЫ рдЬреЛрдбрд╝реЗ рд╣реИрдВ, рдФрд░ рджреЛрдиреЛрдВ рд╕рд░реНрд╡рд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ netstat рдпрд╛ рдирдП ss (рд╕реЙрдХреЗрдЯ рд╕реНрдЯреЗрдЯрд╕) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рджреЛрдиреЛрдВ рдХрдорд╛рдВрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рдХреНрд░рд┐рдп рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рдХреЛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕реБрдирдиреЗ рд╡рд╛рд▓реЗ рд╕реЙрдХреЗрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП -l рдСрдкрд░реЗрдЯрд░ рдХреЛ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ -p рдСрдкрд░реЗрдЯрд░ рд╕реЙрдХреЗрдЯ рд╕реЗ рдЬреБрдбрд╝реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред (рдХрдИ рдФрд░ рдЙрдкрдпреЛрдЧреА рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпреЗ рджреЛрдиреЛрдВ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВред)
# ss -pl | grep /var/run/bcron-spool u_str LISTEN 0 128 /var/run/bcron-spool 1466637 * 0 users:(("unixserver",pid=20629,fd=3))
рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╢реНрд░реЛрддрд╛ рдПрдХ inixserver рдХрдорд╛рдВрдб рд╣реИ рдЬреЛ рдкреНрд░реЛрд╕реЗрд╕ рдЖрдИрдбреА 20629 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред (рдФрд░, рд╕рдВрдпреЛрдЧ рд╕реЗ, рдпрд╣ рд╕реЙрдХреЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ 3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред)
рдЙрд╕реА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг рдХреЛ lsof рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рднреА рдЦреБрд▓реА рдлрд╛рдЗрд▓реЛрдВ (рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░) рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИред рдпрд╛ рдЖрдк рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
# lsof /var/run/bcron-spool COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME unixserve 20629 cron 3u unix 0x000000005ac4bd83 0t0 1466637 /var/run/bcron-spool type=STREAM
20629 рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░рд╣рдиреЗ рд╡рд╛рд▓рд╛ рд╕рд░реНрд╡рд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рд╕реНрдЯреНрд░реЗрд╕ -o / tmp / рдЯреНрд░реЗрд╕ -p 20629 рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕реНрдЯреНрд░реЗрд╕ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдХреНрд░реЛрди рдХрд╛рд░реНрдп рдХреЛ рджреВрд╕рд░реЗ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдЯреНрд░реЗрд╕ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓рддрд╛ рд╣реИред рдФрд░ рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рд╣реИ:
accept(3, NULL, NULL) = 4 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7faa47c44810) = 21181 close(4) = 0 accept(3, NULL, NULL) = ? ERESTARTSYS (To be restarted if SA_RESTART is set) --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=21181, si_uid=998, si_status=0, si_utime=0, si_stime=0} --- wait4(0, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG|WSTOPPED, NULL) = 21181 wait4(0, 0x7ffe6bc36764, WNOHANG|WSTOPPED, NULL) = -1 ECHILD (No child processes) rt_sigaction(SIGCHLD, {sa_handler=0x55d244bdb690, sa_mask=[CHLD], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7faa47ab9840}, {sa_handler=0x55d244bdb690, sa_mask=[CHLD], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7faa47ab9840}, 8) = 0 rt_sigreturn({mask=[]}) = 43 accept(3, NULL, NULL) = 4 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7faa47c44810) = 21200 close(4) = 0 accept(3, NULL, NULL) = ? ERESTARTSYS (To be restarted if SA_RESTART is set) --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=21200, si_uid=998, si_status=111, si_utime=0, si_stime=0} --- wait4(0, [{WIFEXITED(s) && WEXITSTATUS(s) == 111}], WNOHANG|WSTOPPED, NULL) = 21200 wait4(0, 0x7ffe6bc36764, WNOHANG|WSTOPPED, NULL) = -1 ECHILD (No child processes) rt_sigaction(SIGCHLD, {sa_handler=0x55d244bdb690, sa_mask=[CHLD], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7faa47ab9840}, {sa_handler=0x55d244bdb690, sa_mask=[CHLD], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7faa47ab9840}, 8) = 0 rt_sigreturn({mask=[]}) = 43 accept(3, NULL, NULL
(рдЕрдВрддрд┐рдо рд╕реНрд╡реАрдХрд╛рд░ () рдЯреНрд░реЗрд╕ рдХрд░рддреЗ рд╕рдордп рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред) рдФрд░ рдлрд┐рд░, рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдЗрд╕ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рд╡рд╣ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдо рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рдореЗрдВ рдХреЛрдИ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ рдЬреЛ bcrontag рдПрдХ рд╕реЙрдХреЗрдЯ рд╕реЗ рднреЗрдЬреЗрдЧрд╛ рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг ( рдХреНрд▓реЛрди , рдкреНрд░рддреАрдХреНрд╖рд╛ 4 , рдПрд╕рдЖрдИрдЬреАрд╕реАрдПрдЪрдПрд▓рдбреА , рдЖрджрд┐) рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рдмрдЪреНрдЪреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬрдиреНрдо рджреЗрддреА рд╣реИ, рдЬреЛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд╕рд▓реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рдЖрдкрдХреЛ рдЙрд╕рдХреЗ рдирд┐рд╢рд╛рди рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рддреЛ рдХреЙрд▓ рдореЗрдВ рд╕реНрдЯреНрд░реЗрд╕ -f рдЬреЛрдбрд╝реЗрдВред рдпрд╣рд╛рдБ рд╣рдо рдирдП рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рд╕реНрдЯреНрд░реЗрд╕ -f -o / tmp / рдЯреНрд░реЗрд╕ -p реирежремреи реп рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
21470 openat(AT_FDCWD, "tmp/spool.21470.1573692319.854640", O_RDWR|O_CREAT|O_EXCL, 0600) = -1 EACCES (Permission denied) 21470 write(1, "32:ZCould not create temporary f"..., 36) = 36 21470 write(2, "bcron-spool[21470]: Fatal: logs:"..., 84) = 84 21470 unlink("tmp/spool.21470.1573692319.854640") = -1 ENOENT (No such file or directory) 21470 exit_group(111) = ? 21470 +++ exited with 111 +++
рдЕрдм, рдпрд╣ рдХреБрдЫ рд╣реИред рдкрде tmp / spool.21470.1573692319.854640 (рд╡рд░реНрддрдорд╛рди рдХрд╛рдордХрд╛рдЬреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░рддреЗ рд╣реБрдП) рдкрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рдХреНрд░рд┐рдпрд╛ 21470 рдХреЛ "рдПрдХреНрд╕реЗрд╕ рдЕрд╕реНрд╡реАрдХреГрдд" рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИред рдпрджрд┐ рд╣рдо рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдкреВрд░реНрдг рдкрде рдХреЛ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕рдореЗрдВ рдЕрдкрдиреА рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреА рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╣рд▓реЗ рд╣реА рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ lsof -p 21470 рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдкреАрдЖрдИрдбреА тАЛтАЛ21470 рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ рдЬреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред (рдпрджрд┐ рдХреЛрдИ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ PID 21470 рдЙрдиреНрд╣реЗрдВ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕реЗ lsof -p рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред) рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ chdir рд╣реИ (рдЬреЛ рдХрд┐ рдЖрдзреБрдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рд╕рд░реНрдЪ рдЗрдВрдЬрди рдХреА рдорджрдж рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ) рдФрд░ рдпрд╣рд╛рдВ PID 20629 рд╕рд░реНрд╡рд░ рддрдХ рдЯреНрд░реЗрд╕ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░рд┐рд╡рд░реНрд╕ рдЦреЛрдЬреЛрдВ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ:
20629 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7faa47c44810) = 21470 ... 21470 execve("/usr/sbin/bcron-spool", ["bcron-spool"], 0x55d2460807e0 /* 27 vars */) = 0 ... 21470 chdir("/var/spool/cron") = 0 ... 21470 openat(AT_FDCWD, "tmp/spool.21470.1573692319.854640", O_RDWR|O_CREAT|O_EXCL, 0600) = -1 EACCES (Permission denied) 21470 write(1, "32:ZCould not create temporary f"..., 36) = 36 21470 write(2, "bcron-spool[21470]: Fatal: logs:"..., 84) = 84 21470 unlink("tmp/spool.21470.1573692319.854640") = -1 ENOENT (No such file or directory) 21470 exit_group(111) = ? 21470 +++ exited with 111 +++
(рдпрджрд┐ рдЖрдк рдЦреЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдореЗрд░реА рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ * рдирд┐рдХреНрд╕ рдкреНрд░реЛрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдФрд░ рд╢реЗрд▓ рдкрд░ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред) рдЗрд╕рд▓рд┐рдП, PID 20629 рд╕рд░реНрд╡рд░ рдХреЛ рдкрде /var/spool/cron/tmp/cool.21470.1573692319.854640 рдкрд░ рдкрде рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рдорд┐рд▓реА ред , тАФ . :
# ls -ld /var/spool/cron/tmp/ drwxr-xr-x 2 root root 4096 Nov 6 05:33 /var/spool/cron/tmp/ # ps u -p 20629 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND cron 20629 0.0 0.0 2276 752 ? Ss Nov14 0:00 unixserver -U /var/run/bcron-spool -- bcron-spool
! cron, root /var/spool/cron/tmp/ . chown cron /var/spool/cron/tmp/ bcron . ( , тАФ SELinux AppArmor, dmesg .)
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░
, , , , тАФ . , bcron , .
, , , strace , , . , strace . , .