เดธเตโ€ŒเดŸเตเดฐเต‡เดธเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดตเดฟเดจเตเดฏเดพเดธเด‚

เดธเตโ€ŒเดŸเตเดฐเต‡เดธเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดตเดฟเดจเตเดฏเดพเดธเด‚

เดŽเดจเตเดฑเต† เดฆเตˆเดจเด‚เดฆเดฟเดจ เดœเต‹เดฒเดฟ เด•เต‚เดŸเตเดคเดฒเตเด‚ เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดตเดฟเดจเตเดฏเดพเดธเดฎเดพเดฃเต, เด…เดคเดพเดฏเดคเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดคเตเดชเต‹เดฒเตเดณเตเดณ เดšเต‹เดฆเตเดฏเด™เตเด™เตพเด•เตเด•เต เด‰เดคเตเดคเดฐเด‚ เดจเตฝเด•เดพเตป เดžเดพเตป เดงเดพเดฐเดพเดณเด‚ เดธเดฎเดฏเด‚ เดšเต†เดฒเดตเดดเดฟเด•เตเด•เตเดจเตเดจเต:

  • เดˆ เดธเต‹เดซเตเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดกเต†เดตเดฒเดชเตเดชเตผเด•เตเด•เต เดตเต‡เดฃเตเดŸเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เดชเด•เตเดทเต‡ เดŽเดจเดฟเด•เตเด•เดฒเตเดฒ. เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต?
  • เด‡เดจเตเดจเดฒเต† เดˆ เดธเต‹เดซเตเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดŽเดจเดฟเด•เตเด•เต เดตเต‡เดฃเตเดŸเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเต, เดŽเดจเตเดจเดพเตฝ เด‡เดจเตเดจเต เด…เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต?

เดธเดพเดงเดพเดฐเดฃ เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เดฟเตฝ เดจเดฟเดจเตเดจเต เด…เดฒเตเดชเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏ เด’เดฐเต เดคเดฐเด‚ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เด†เดฃเดฟเดคเต. เดฑเต†เด—เตเดฒเตผ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดŽเดจเตเดจเดคเต เด•เต‹เดกเดฟเดจเตเดฑเต† เดฏเตเด•เตเดคเดฟเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฃเต, เดŽเดจเตเดจเดพเตฝ เดตเดฟเดจเตเดฏเดพเดธ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดŽเดจเตเดจเดคเต เด•เต‹เดกเตเด‚ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟเดฏเตเด‚ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดชเตเดฐเดคเดฟเดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฃเต. เดชเตเดฐเดถเตโ€Œเดจเดคเตเดคเดฟเดจเตเดฑเต† เดฎเต‚เดฒเด•เดพเดฐเดฃเด‚ เด’เดฐเต เดฒเต‹เดœเดฟเด•เตเด•เตฝ เดชเดฟเดถเด•เดพเดฃเต†เด™เตเด•เดฟเตฝ เดชเต‹เดฒเตเด‚, เดŽเดฒเตเดฒเดพเด‚ เด’เดฐเต เดฎเต†เดทเต€เดจเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เดฎเดฑเตเดฑเตŠเดจเตเดจเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ เดŽเดจเตเดจเดคเดฟเดจเตเดฑเต† เด…เตผเดคเตเดฅเด‚ เดชเตเดฐเดถเตเดจเด‚ เดŽเด™เตเด™เดจเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟเดฏเดฟเดฒเดพเดฃเต†เดจเตเดจเดพเดฃเต.

เด…เดคเดฟเดจเดพเตฝ เดธเดพเดงเดพเดฐเดฃ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดŸเต‚เดณเตเด•เตพเด•เตเด•เต เดชเด•เดฐเด‚ เดœเดฟเดกเดฟเดฌเดฟ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเดพเดฏเดฟ เดŽเดจเดฟเด•เตเด•เต เดฎเดฑเตเดฑเตŠเดฐเต เด•เต‚เดŸเตเดŸเด‚ เดŸเต‚เดณเตเด•เตพ เด‰เดฃเตเดŸเต. "เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เดˆ เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดŽเดจเดฟเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดคเตเดคเดคเต?" เดŽเดจเตเดจเดคเตเดชเต‹เดฒเตเดณเตเดณ เดชเตเดฐเดถเตโ€Œเดจเด‚ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดŽเดจเตเดฑเต† เดชเตเดฐเดฟเดฏเดชเตเดชเต†เดŸเตเดŸ เด‰เดชเด•เดฐเดฃเด‚. เดตเดฟเดณเดฟเดšเตเดšเต เดธเตเดŸเตเดฐเต†เดฏเตเดธเต.

เดŽเดจเตเดคเดพเดฃเต เดธเตโ€ŒเดŸเตเดฐเต‡เดธเต?

เดธเตเดŸเตเดฐเต†เดฏเตเดธเต "เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ เดŸเตเดฐเต‡เดธเดฟเด‚เด—เต" เดŽเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด‰เดชเด•เดฐเดฃเดฎเดพเดฃเต. เด‡เดคเต เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดฒเดฟเดจเด•เตเดธเดฟเดจเดพเดฏเดฟ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเดคเดพเดฃเต, เดŽเดจเตเดจเดพเตฝ เดฎเดฑเตเดฑเต เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพเด•เตเด•เตเดณเตเดณ เดŸเต‚เดณเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดคเต‡ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดคเดจเตเดคเตเดฐเด™เตเด™เตพ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚ (เดกเดฟเดŸเตเดฐเต‡เดธเต เด…เดฅเดตเดพ ktrace).

เด…เดŸเดฟเดธเตเดฅเดพเดจ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดตเดณเดฐเต† เดฒเดณเดฟเดคเดฎเดพเดฃเต. เดจเดฟเด™เตเด™เตพ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเตโ€ŒเดŸเตเดฐเต‡เดธเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด…เดคเต เดŽเดฒเตเดฒเดพ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเตเด•เดณเตเด‚ เด‰เดชเต‡เด•เตเดทเดฟเด•เตเด•เตเด‚ (เด†เดฆเตเดฏเด‚ เดจเดฟเด™เตเด™เตพ เด‡เดคเต เดธเตเดตเดฏเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดฟเดตเดฐเตเด‚. เดธเตเดŸเตเดฐเต†เดฏเตเดธเต):

$ strace echo Hello
...Snip lots of stuff...
write(1, "Hellon", 6)                  = 6
close(1)                                = 0
close(2)                                = 0
exit_group(0)                           = ?
+++ exited with 0 +++

เดŽเดจเตเดคเดพเดฃเต เดˆ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเตเด•เตพ? เด‡เดคเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‡เตผเดฃเดฒเดฟเดจเตเดณเตเดณ API เดชเต‹เดฒเต†เดฏเดพเดฃเต. เด’เดฐเต เด•เดพเดฒเดคเตเดคเต, เดธเต‹เดซเตเดฑเตเดฑเตโ€Œเดตเต†เดฏเดฑเดฟเดจเต เด…เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเดฑเดฟเดฒเต‡เด•เตเด•เต เดจเต‡เดฐเดฟเดŸเตเดŸเต เดชเตเดฐเดตเต‡เดถเดจเด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดธเตเด•เตเดฐเต€เดจเดฟเตฝ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เดฃเดฎเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เดชเต‹เตผเดŸเตเดŸเตเด•เตพ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดตเต€เดกเดฟเดฏเต‹ เด‰เดชเด•เดฐเดฃเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดฎเต†เดฎเตเดฎเดฑเดฟ-เดฎเดพเดชเตเดชเต เดšเต†เดฏเตเดค เดฐเดœเดฟเดธเตเดฑเตเดฑเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฒเต‡ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดฎเตพเดŸเตเดŸเดฟเดŸเดพเดธเตโ€Œเด•เดฟเด‚เด—เต เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเตผ เดธเด‚เดตเดฟเดงเดพเดจเด™เตเด™เตพ เดชเตเดฐเดšเดพเดฐเดคเตเดคเดฟเดฒเดพเดฏเดชเตเดชเต‹เตพ, เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเดฑเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเต เดตเดฟเดตเดฟเดง เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดชเต‹เดฐเดพเดŸเดฟเดฏเดคเดฟเดจเดพเตฝ เด•เตเดดเดชเตเดชเด™เตเด™เตพ เดญเดฐเดฟเดšเตเดšเต. เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเดฒเต† เดชเดฟเดดเดตเตเด•เตพ เดฎเตเดดเตเดตเตป เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเต†เดฏเตเด‚ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเดฒเตเด‚ เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฏเต† เดคเด•เตผเด•เตเด•เตเด‚. เดคเตเดŸเตผเดจเตเดจเต เดชเตเดฐเดฟเดตเดฟเดฒเต‡เดœเต เดฎเต‹เดกเตเด•เตพ (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "เดฑเดฟเด‚เด—เต เดชเตเดฐเตŠเดŸเตเดŸเด•เตเดทเตป") เดธเดฟเดชเดฟเดฏเตเดตเดฟเตฝ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดŸเต. เด•เต‡เตผเดฃเตฝ เดเดฑเตเดฑเดตเตเด‚ เดชเตเดฐเดฟเดตเดฟเดฒเต‡เดœเดพเดฏเดฟ เดฎเดพเดฑเดฟ: เด‡เดคเดฟเดจเต เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเดฑเดฟเดฒเต‡เด•เตเด•เต เดชเต‚เตผเดฃเตเดฃ เด†เด•เตโ€Œเดธเดธเต เดฒเดญเดฟเดšเตเดšเต, เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเตเด•เตพ เดตเดดเดฟ เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเดฑเตเดฎเดพเดฏเดฟ เดธเด‚เดตเดฆเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด•เต‡เตผเดฃเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เด•เตโ€Œเดธเดธเตเดธเต เด…เดญเตเดฏเตผเดคเตเดฅเดฟเด•เตเด•เต‡เดฃเตเดŸเดฟ เดตเดฐเตเดจเตเดจ เดชเตเดฐเดคเตเดฏเต‡เด•เดพเดตเด•เดพเดถเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต.

เดฌเตˆเดจเดฑเดฟ เดคเดฒเดคเตเดคเดฟเตฝ, เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดซเด‚เด—เตเดทเตป เด•เต‹เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เดฒเตเดชเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฃเต, เดŽเดจเตเดจเดพเตฝ เดฎเดฟเด•เตเด• เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เดณเตเด‚ เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเดฟเตฝ เด’เดฐเต เดฑเดพเดชเตเดชเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เด†. POSIX C เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเดฟเตฝ เด’เดฐเต เดซเด‚เด—เตโ€Œเดทเตป เด•เต‹เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดดเตเดคเตเด• (), เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเดฟเดจเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเตผ-เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เด•เต‹เดกเตเด•เดณเตเด‚ เด‡เดคเดฟเตฝ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดดเตเดคเตเด•.

เดธเตโ€ŒเดŸเตเดฐเต‡เดธเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดตเดฟเดจเตเดฏเดพเดธเด‚

เดšเตเดฐเตเด•เตเด•เดคเตเดคเดฟเตฝ, เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด‚ เด…เดคเดฟเดจเตเดฑเต† เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟเดฏเตเด‚ (เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเตผ เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพ) เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดเดคเตŠเดฐเต เด‡เดŸเดชเต†เดŸเดฒเตเด‚ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเตเด•เดณเดฟเดฒเต‚เดŸเต†เดฏเดพเดฃเต เดจเดŸเดคเตเดคเตเดจเตเดจเดคเต. เด…เดคเดฟเดจเดพเตฝ, เดธเต‹เดซเตเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เด’เดฐเต เดฎเต†เดทเต€เดจเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดฎเดฑเตเดฑเตŠเดจเตเดจเดฟเตฝ เด…เดฒเตเดฒ, เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ เดŸเตเดฐเต†เดฏเตโ€Œเดธเดฟเด‚เด—เต เดซเดฒเด™เตเด™เตพ เดจเต‹เด•เตเด•เตเดจเตเดจเดคเต เดจเดจเตเดจเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. เด•เต‚เดŸเตเดคเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ เดชเดฑเดžเตเดžเดพเตฝ, เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ เดŸเตเดฐเต†เดฏเตเดธเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เดธเดพเดงเดพเดฐเดฃ เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เดณเตเดŸเต† เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เด‡เดคเดพ:

  • เด•เตบเดธเต‹เตพ I/O
  • เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต I/O
  • เดซเดฏเตฝ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด†เด•เตเดธเดธเตเด‚ เดซเดฏเตฝ I/O
  • เด’เดฐเต เดชเตเดฐเต‹เดธเดธเตเดธเต เดคเตเดฐเต†เดกเดฟเดจเตเดฑเต† เด†เดฏเตเดธเตเดธเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจเต
  • เดฒเต‹-เดฒเต†เดตเตฝ เดฎเต†เดฎเตเดฎเดฑเดฟ เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต
  • เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เด‰เดชเด•เดฐเดฃ เดกเตเดฐเตˆเดตเดฑเตเด•เดณเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด†เด•เตเดธเดธเต

เดŽเดชเตเดชเต‹เดดเดพเดฃเต เดธเตโ€ŒเดŸเตเดฐเต‡เดธเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต?

เดธเดฟเดฆเตเดงเดพเดจเตเดคเดคเตเดคเดฟเตฝ, เดธเตเดŸเตเดฐเต†เดฏเตเดธเต เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดธเตเดฅเดฒเดคเตเดคเต เดเดคเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเดฒเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เด•เดพเดฐเดฃเด‚ เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดธเตเดฅเดฒเดคเตเดคเต เดเดคเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด‚ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเตเด•เตพ เดšเต†เดฏเตเดฏเดฃเด‚. เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตโ€Œเดค, เดฒเต‹-เดฒเต†เดตเตฝ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เดณเดฟเตฝ เด‡เดคเต เด•เต‚เดŸเตเดคเตฝ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดฑเตบเดŸเตˆเดฎเดฟเตฝ เดจเดฟเดจเตเดจเตเด‚ เด‡เดจเตเดฑเตผเดชเตเดฐเต†เดฑเตเดฑเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดฎเตเดณเตเดณ เด…เดงเดฟเด• เดถเดฌเตโ€Œเดฆเด‚ เด•เตเดฑเดฏเตเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดดเดฟเดฏเตเดฎเต†เด™เตเด•เดฟเตฝ เดชเตˆเดคเตเดคเตบ เดชเต‹เดฒเตเดณเตเดณ เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดญเดพเดทเด•เดณเดฟเดฒเตเด‚ เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต.

เด…เดคเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เดฎเดนเดคเตเดตเดคเตเดคเดฟเดฒเตเด‚ เดธเตเดŸเตเดฐเต†เดฏเตเดธเต เด’เดฐเต เดฎเต†เดทเต€เดจเดฟเตฝ เดจเดจเตเดจเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเดฑเดฟเดจเตเดฑเต† เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดธเดฎเดฏเดคเตเดคเต เดธเตเดตเดฏเด‚ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดจเตเดจเต, เดชเด•เตเดทเต‡ เดฎเดฑเตเดฑเตŠเดจเตเดจเดฟเตฝ เดชเต†เดŸเตเดŸเต†เดจเตเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเดฟเตผเดคเตเดคเตเดจเตเดจเต, เดซเดฏเดฒเตเด•เตพ, เด…เดจเตเดฎเดคเดฟเด•เตพ, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดšเดฟเดฒ เด•เดฎเดพเตปเดกเตเด•เตพ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเดฑเตเดฑเต†เดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดŸ เดถเตเดฐเดฎเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดตเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด…เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต... เด‡เดคเต เด–เต‡เดฆเด•เดฐเดฎเดพเดฃเต, เดชเด•เตเดทเต‡ เด…เด™เตเด™เดจเต†เดฏเดฒเตเดฒ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต เดชเดฐเดฟเดถเต‹เดงเดจ เดชเดฟเดถเด•เตเด•เตพ เดชเต‹เดฒเตเดณเตเดณ เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเตเดฐเดถเตเดจเด™เตเด™เดณเตเดฎเดพเดฏเดฟ เดจเดจเตเดจเดพเดฏเดฟ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเด•. เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด‡เดคเดฟเดจเต เด’เดฐเต เด•เต‹เดฎเตเดชเดฟเดจเต‡เดทเตป เด†เดตเดถเตเดฏเดฎเดพเดฃเต เดธเตเดŸเตเดฐเต†เดฏเตเดธเตเดšเดฟเดฒเดชเตเดชเต‹เตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเด• เด‰เดฏเตผเดจเตเดจ เดฒเต†เดตเตฝ เดŸเต‚เดณเตเด•เดณเตเด‚ (เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เดŸเต‚เตพ เดชเต‹เดฒเต† openssl เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเต เดกเต€เดฌเด—เต เดšเต†เดฏเตเดฏเดพเตป).

เดžเด™เตเด™เตพ เด’เดฐเต เด’เดฑเตเดฑเดชเตเดชเต†เดŸเตเดŸ เดธเต†เตผเดตเตผ เด‰เดฆเดพเดนเดฐเดฃเดฎเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚, เดŽเดจเตเดจเดพเตฝ เด•เต‚เดŸเตเดคเตฝ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เดตเดฟเดจเตเดฏเดพเดธ เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเตเด•เดณเดฟเตฝ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ เดŸเตเดฐเต†เดฏเตโ€Œเดธเดฟเด‚เด—เต เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚. เดจเดฟเด™เตเด™เตพ เดถเดฐเดฟเดฏเดพเดฏ เด‰เดชเด•เดฐเดฃเด™เตเด™เตพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เดฒเดณเดฟเดคเดฎเดพเดฏ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เด‰เดฆเดพเดนเดฐเดฃเด‚

เด…เดคเดฟเดถเดฏเด•เดฐเดฎเดพเดฏ เดธเต†เตผเดตเตผ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดซเต‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดชเดฑเดฏเดพเด‚, เด‡เดคเดพเดฃเต เดจเดฟเด™เตเด™เตพ เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจเดคเต:

$ foo
Error opening configuration file: No such file or directory

เดจเดฟเด™เตเด™เตพ เดŽเดดเตเดคเดฟเดฏ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเตฝ เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเดฏเดฟเดฒเตเดฒ. เดšเดฟเดฒเดชเตเดชเต‹เตพ เดชเดพเด•เตเด•เต‡เดœเต เดฎเดพเดจเต‡เดœเตผเดฎเดพเตผ เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ, เด…เดตเตผ เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจ เดซเดฏเตฝ เดฒเตŠเด•เตเด•เต‡เดทเดจเตเด•เดณเต† เด…เดธเดพเดงเตเดตเดพเด•เตเด•เตเดจเตเดจเดคเดพเดฃเต เด‡เดคเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต. เด’เดฐเต เดตเดฟเดคเดฐเดฃเดคเตเดคเดฟเดจเดพเดฏเตเดณเตเดณ เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เด—เตˆเดกเต เดจเดฟเด™เตเด™เตพ เดชเดฟเดจเตเดคเตเดŸเดฐเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดฎเดฑเตเดฑเตŠเดจเตเดจเดฟเตฝ เดจเดฟเด™เตเด™เตพ เดชเตเดฐเดคเต€เด•เตเดทเดฟเดšเตเดšเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดคเดฟเด•เดšเตเดšเตเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏ เดซเดฏเดฒเตเด•เตพ เดจเดฟเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเด‚. เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเตฝ เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต เดคเดฟเดฐเดฏเต‡เดฃเตเดŸเดคเต†เดจเตเดจเต เดชเดฟเดถเด•เต เดธเดจเตเดฆเต‡เดถเด‚ เดชเดฑเดžเตเดžเดพเตฝ เด•เตเดฑเดšเตเดšเต เดจเดฟเดฎเดฟเดทเด™เตเด™เตพเด•เตเด•เตเดณเตเดณเดฟเตฝ เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚, เดชเด•เตเดทเต‡ เด…เดคเต เด…เด™เตเด™เดจเต†เดฏเดฒเตเดฒ. เด…เดชเตเดชเต‹เตพ เดŽเดตเดฟเดŸเต† เดจเต‹เด•เตเด•เดฃเด‚?

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเต‹เดดเตเดธเต เด•เต‹เดกเดฟเดฒเต‡เด•เตเด•เต เด†เด•เตเดธเดธเต เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดคเต เดตเดพเดฏเดฟเด•เตเด•เดพเดจเตเด‚ เดŽเดฒเตเดฒเดพเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚. เด’เดฐเต เดจเดฒเตเดฒ เดฌเดพเด•เตเด•เดชเตเดชเต เดชเตเดฒเดพเตป, เดŽเดจเตเดจเดพเตฝ เดเดฑเตเดฑเดตเตเด‚ เดตเต‡เด—เดคเดฏเต‡เดฑเดฟเดฏ เดชเดฐเดฟเดนเดพเดฐเดฎเดฒเตเดฒ. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เด˜เดŸเตเดŸเด‚ เด˜เดŸเตเดŸเดฎเดพเดฏเตเดณเตเดณ เดกเต€เดฌเด—เตเด—เตผ เด…เดตเดฒเด‚เดฌเดฟเด•เตเด•เดพเด‚ เดœเดฟเดกเดฟเดฌเดฟ เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดŽเดจเตเดคเดพเดฃเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต†เดจเตเดจเต เด•เดพเดฃเตเด•, เดŽเดจเตเดจเดพเตฝ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟเดฏเตเดฎเดพเดฏเตเดณเตเดณ เด‡เดŸเดชเต†เดŸเตฝ เด•เดพเดฃเดฟเด•เตเด•เดพเตป เดชเตเดฐเดคเตเดฏเต‡เด•เด‚ เดฐเต‚เดชเด•เตฝเดชเตเดชเดจ เดšเต†เดฏเตเดค เด’เดฐเต เด‰เดชเด•เดฐเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เด•เต‚เดŸเตเดคเตฝ เดซเดฒเดชเตเดฐเดฆเดฎเดพเดฃเต: เดธเตเดŸเตเดฐเต†เดฏเตเดธเต.

เดคเต€เดฐเตเดฎเดพเดจเด‚ เดธเตเดŸเตเดฐเต†เดฏเตเดธเต เด…เดจเดพเดตเดถเตเดฏเดฎเดพเดฏเดฟ เดคเต‹เดจเตเดจเดฟเดฏเต‡เด•เตเด•เดพเด‚, เดชเด•เตเดทเต‡ เด…เดคเดฟเตฝ เดญเต‚เดฐเดฟเดญเดพเด—เดตเตเด‚ เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดพเดฏเดฟ เด…เดตเด—เดฃเดฟเด•เตเด•เดพเด‚ เดŽเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒ เดตเดพเตผเดคเตเดค. เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต เดŸเตเดฐเต†เดฏเตเดธเต เดซเดฒเด™เตเด™เตพ เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต -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, "177ELF2113 3 > 1 260A2 "..., 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 +++

เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเดจเตเดฑเต† เดเด•เดฆเต‡เดถเด‚ เดฎเตเดดเตเดตเตป เด†เดฆเตเดฏ เดชเต‡เดœเตเด‚ เดธเตเดŸเตเดฐเต†เดฏเตเดธเต - เด‡เดคเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดฒเต‹เดžเตเดšเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดคเดพเดดเตเดจเตเดจ เดจเดฟเดฒเดฏเดฟเดฒเตเดณเตเดณ เดคเดฏเตเดฏเดพเดฑเต†เดŸเตเดชเตเดชเดพเดฃเต. (เด’เดฐเตเดชเดพเดŸเต เด•เต‹เดณเตเด•เตพ mmap, เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเด•, brk เดฒเต‹-เดฒเต†เดตเตฝ เดฎเต†เดฎเตเดฎเดฑเดฟ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเตเด‚ เดกเตˆเดจเดพเดฎเดฟเด•เต เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเตเด‚ เดชเต‹เดฒเตเดณเตเดณ เด•เดพเดฐเตเดฏเด™เตเด™เตพเด•เตเด•เต.) เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ, เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดธเดฎเดฏเดคเตเดคเต เดธเตเดŸเตเดฐเต†เดฏเตเดธเต เด…เดตเดธเดพเดจเด‚ เดฎเตเดคเตฝ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต. เดคเดพเดดเต† เด’เดฐเต เดตเต†เดฒเตเดฒเตเดตเดฟเดณเดฟ เด‰เดฃเตเดŸเดพเด•เตเด‚ เดŽเดดเตเดคเตเด•, เด’เดฐเต เดชเดฟเดถเด•เต เดธเดจเตเดฆเต‡เดถเด‚ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดžเด™เตเด™เตพ เดฎเตเด•เดณเดฟเตฝ เดจเต‹เด•เตเด•เตเด•เดฏเตเด‚ เด†เดฆเตเดฏเดคเตเดคเต† เดคเต†เดฑเตเดฑเดพเดฏ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ เด•เดพเดฃเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต - เด•เต‹เตพ เดคเตเดฑเด•เตเด•เตเด•, เด’เดฐเต เดชเดฟเดถเด•เต เดŽเดฑเดฟเดฏเตเดจเตเดจเต ENOENT (โ€œเดซเดฏเดฒเต‹ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเต‹ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดฟเดฒเตเดฒโ€) เดคเตเดฑเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจเต /etc/foo/config.json. เด‡เดตเดฟเดŸเต†เดฏเดพเดฃเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเตฝ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต.

เด‡เดคเตŠเดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เดฎเดพเดคเตเดฐเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดžเดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดธเดฎเดฏเดคเตเดคเดฟเดจเตเดฑเต† 90% เดžเดพเตป เดชเดฑเดฏเตเด‚ เดธเตเดŸเตเดฐเต†เดฏเตเดธเต, เด‡เดคเดฟเดจเต‡เด•เตเด•เดพเตพ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดณเตเดณ เดฎเดฑเตเดฑเตŠเดจเตเดจเตเด‚ เดšเต†เดฏเตเดฏเดพเดจเดฟเดฒเตเดฒ. เด’เดฐเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เด˜เดŸเตเดŸเด‚ เด˜เดŸเตเดŸเดฎเดพเดฏเตเดณเตเดณ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เด—เตˆเดกเต เดšเตเดตเดŸเต†เดฏเตเดฃเตเดŸเต:

  • เด’เดฐเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดธเดฟเดธเตเดฑเตเดฑเด‚-เดตเตˆ เดชเดฟเดถเด•เดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด…เดตเตเดฏเด•เตเดคเดฎเดพเดฏ เดธเดจเตเดฆเต‡เดถเด‚ เด•เดพเดฐเดฃเด‚ เด…เดธเตเดตเดธเตเดฅเดฐเดพเด•เตเด•
  • เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด• เดธเตเดŸเตเดฐเต†เดฏเตเดธเต
  • เดŸเตเดฐเต‡เดธเต เดซเดฒเด™เตเด™เดณเดฟเตฝ เดชเดฟเดถเด•เต เดธเดจเตเดฆเต‡เดถเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเตเด•
  • เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดŸ เด†เดฆเตเดฏเดคเตเดคเต† เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ เด…เดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เดตเดฐเต† เด‰เดฏเดฐเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเด•

เด˜เดŸเตเดŸเด‚ 4-เดฒเต† เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ เดŽเดจเตเดคเดพเดฃเต เดคเต†เดฑเตเดฑเต เดธเด‚เดญเดตเดฟเดšเตเดšเดคเต†เดจเตเดจเต เดตเต†เดณเดฟเดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป เดธเดพเดงเตเดฏเดคเดฏเตเดฃเตเดŸเต.

เดธเต‚เดšเดจเด•เตพ

เด•เต‚เดŸเตเดคเตฝ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เดฟเดจเตเดฑเต† เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เดซเดฒเดชเตเดฐเดฆเดฎเดพเดฏ เด‰เดชเดฏเต‹เด—เดคเตเดคเดฟเดจเดพเดฏเดฟ เดžเดพเตป เด•เตเดฑเดšเตเดšเต เดคเดจเตเดคเตเดฐเด™เตเด™เตพ เด•เดพเดฃเดฟเด•เตเด•เตเด‚ เดธเตเดŸเตเดฐเต†เดฏเตเดธเต:

เดฎเดจเตเดทเตเดฏเตป เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดนเตƒเดคเตเดคเดพเดฃเต

เดชเดฒ *nix เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เดณเดฟเดฒเตเด‚, เด•เต‡เตผเดฃเดฒเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเตเด•เดณเตเดŸเต† เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดฒเดฟเดธเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เดฒเดญเดฟเด•เตเด•เตเด‚ เดฎเดจเตเดทเตเดฏเตป syscalls. เดคเตเดŸเด™เตเด™เดฟเดฏ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดจเดฟเด™เตเด™เตพ เด•เดพเดฃเตเด‚ brk(2), เด…เดคเดพเดฏเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดตเดฐเด™เตเด™เตพ เดฒเดญเดฟเด•เตเด•เตเด‚ เดฎเดจเตเดทเตเดฏเตป 2 เดฌเตเดฐเต‡เด•เตเด•เต.

เดšเต†เดฑเดฟเดฏ เดฑเต‡เด•เตเด•เต: เดฎเดจเตเดทเตเดฏเตป 2 เดซเต‹เตผเด•เตเด•เต เดทเต†เดฒเตเดฒเดฟเดจเตเดณเตเดณ เดชเต‡เดœเต เดŽเดจเตเดจเต† เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต เดซเต‹เตผเด•เตเด•เต () ะฒ GNU libc, เดเดคเต, เด…เดคเต เดฎเดพเดฑเตเดจเตเดจเต, เดตเดฟเดณเดฟเดšเตเดšเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเต เด•เตเดฒเต‹เตบ(). เดธเต†เดฎเดพเดจเตเดฑเดฟเด•เตเดธเดฟเดจเต† เดตเดฟเดณเดฟเด•เตเด•เตเด• เดซเต‡เดพเตผเด•เตเด•เต เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดŽเดดเตเดคเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ เด…เดคเต‡เดชเดŸเดฟ เดจเดฟเดฒเดจเดฟเตฝเด•เตเด•เตเด‚ เดซเต‹เตผเด•เตเด•เต (), เด’เดฐเต เดŸเตเดฐเต†เดฏเตเดธเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด• - เดžเดพเตป เด•เต‹เดณเตเด•เดณเตŠเดจเตเดจเตเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเตเด•เดฏเดฟเดฒเตเดฒ เดซเต‡เดพเตผเด•เตเด•เต, เด…เดตเดฏเตเด•เตเด•เต เดชเด•เดฐเด‚ เด‰เดฃเตเดŸเดพเด•เตเด‚ เด•เตเดฒเต‹เตบ(). เดจเดฟเด™เตเด™เตพ เด‰เดฑเดตเดฟเดŸเดคเตเดคเต† เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป เดคเตเดŸเด™เตเด™เดฟเดฏเดพเตฝ เด…เดคเตเดคเดฐเด‚ เดฑเต‡เด•เตเด•เตเด•เตพ เดจเดฟเด™เตเด™เดณเต† เด†เดถเดฏเด•เตเด•เตเดดเดชเตเดชเดคเตเดคเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต เดธเตเดŸเตเดฐเต†เดฏเตเดธเต.

เด’เดฐเต เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เดพเตป -o เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•

เดธเตเดŸเตเดฐเต†เดฏเตเดธเต เดตเดฟเดชเตเดฒเดฎเดพเดฏ เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เด…เดคเดฟเดจเดพเตฝ เดŸเตเดฐเต†เดฏเตเดธเต เดซเดฒเด™เตเด™เตพ เดชเตเดฐเดคเตเดฏเต‡เด• เดซเดฏเดฒเตเด•เดณเดฟเตฝ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต (เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดฒเต†เดจเตเดจเดชเต‹เดฒเต†). เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเตเดฎเดพเดฏเดฟ เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเดจเต† เด†เดถเดฏเด•เตเด•เตเดดเดชเตเดชเดคเตเดคเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเต เด’เดดเดฟเดตเดพเด•เตเด•เดพเดจเตเด‚ เด‡เดคเต เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเต เดธเตเดŸเตเดฐเต†เดฏเตเดธเต เด•เตบเดธเต‹เดณเดฟเตฝ.

เด•เต‚เดŸเตเดคเตฝ เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเต เดกเดพเดฑเตเดฑ เด•เดพเดฃเตเดจเตเดจเดคเดฟเดจเต -s เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•

เดฎเตเด•เดณเดฟเดฒเต† เด‰เดฆเดพเดนเดฐเดฃ เดŸเตเดฐเต†เดฏเตโ€Œเดธเดฟเตฝ เดชเดฟเดถเด•เต เดธเดจเตเดฆเต‡เดถเดคเตเดคเดฟเดจเตเดฑเต† เดฐเดฃเตเดŸเดพเด‚ เดชเด•เตเดคเดฟ เด•เดพเดฃเดฟเด•เตเด•เดพเดคเตเดคเดคเต เดจเดฟเด™เตเด™เตพ เดถเตเดฐเดฆเตเดงเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เดพเด‚. เด•เดพเดฐเดฃเด‚ เดธเตเดŸเตเดฐเต†เดฏเตเดธเต เดธเตเดŸเตเดฐเดฟเด‚เด—เต เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเดฟเดจเตเดฑเต† เด†เดฆเตเดฏ 32 เดฌเตˆเดฑเตเดฑเตเด•เตพ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเดคเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เด•เดพเดฃเดฃเดฎเต†เด™เตเด•เดฟเตฝ, เด‡เดคเตเดชเต‹เดฒเตเดณเตเดณ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดšเต‡เตผเด•เตเด•เตเด• -s 128 เด•เต‹เดณเดฟเดฒเต‡เด•เตเด•เต เดธเตเดŸเตเดฐเต†เดฏเตเดธเต.

-y เดซเดฏเดฒเตเด•เตพ, เดธเต‹เด•เตเด•เดฑเตเดฑเตเด•เตพ เดฎเตเดคเดฒเดพเดฏเดต เดŸเตเดฐเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดŽเดณเตเดชเตเดชเดฎเดพเด•เตเด•เตเดจเตเดจเต.

"เดŽเดฒเตเดฒเดพเด‚ เดซเดฏเดฒเดพเดฃเต" เดŽเดจเตเดจเดคเดฟเดจเตผเดคเตเดฅเด‚ *เดจเดฟเด•เตเดธเต เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพ เดŽเดฒเตเดฒเดพ เด/เด’เดฏเตเด‚ เดซเดฏเตฝ เดกเดฟเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด…เดคเต เด’เดฐเต เดซเดฏเดฒเดฟเดจเต‹ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เดฟเดจเต‹ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด‡เดจเตเดฑเตผเดชเตเดฐเต‹เดธเดธเต เดชเตˆเดชเตเดชเตเด•เตพเด•เตเด•เต‹ โ€‹โ€‹เดฌเดพเดงเด•เดฎเดพเดฃเต. เด‡เดคเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เดฟเดจเต เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฃเต, เดŽเดจเตเดจเดพเตฝ เดจเดฟเด™เตเด™เตพ เดชเตŠเดคเตเดตเดพเดฏเดฟ เด•เดพเดฃเตเดฎเตเดชเต‹เตพ เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดŽเดจเตเดคเดพเดฃเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เดŸเตเดฐเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเดพเด•เตเด•เตเดจเตเดจเต เดตเดพเดฏเดฟเด•เตเด•เตเด• ะธ เดŽเดดเตเดคเตเด• เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ เดŸเตเดฐเต†เดฏเตเดธเต เดซเดฒเด™เตเด™เดณเดฟเตฝ.

เด’เดฐเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† -ัƒ, เดจเดฟเด™เตเด™เตพ เดจเดฟเตผเดฌเดจเตเดงเดฟเด•เตเด•เตเด‚ เดธเตเดŸเตเดฐเต†เดฏเตเดธเต เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเดฟเดฒเต† เด“เดฐเต‹ เดซเดฏเตฝ เดกเดฟเดธเตโ€Œเด•เตเดฐเดฟเดชเตโ€Œเดฑเตเดฑเดฑเตเด‚ เด…เดคเต เดšเต‚เดฃเตเดŸเดฟเด•เตเด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เด’เดฐเต เด•เตเดฑเดฟเดชเตเดชเดฟเดจเตŠเดชเตเดชเด‚ เดตเตเดฏเดพเด–เตเดฏเดพเดจเดฟเด•เตเด•เตเด•.

-p** เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เดคเดฟเดจเด•เด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดชเตเดฐเต‹เดธเดธเตเดธเดฟเดฒเต‡เด•เตเด•เต เด…เดฑเตเดฑเดพเดšเตเดšเตเดšเต†เดฏเตเดฏเตเด•

เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเด™เตเด™เตพ เด•เดพเดฃเตเดจเตเดจเดคเต เดชเต‹เดฒเต†, เดšเดฟเดฒเดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เด‡เดคเดฟเดจเด•เด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด‡เดคเต เดชเตเดฐเต‹เดธเดธเตเดธเต 1337 เด†เดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เด…เดฑเดฟเดฏเดพเดฎเต†เด™เตเด•เดฟเตฝ (เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดฑเดฏเตเด• ps), เดคเตเดŸเตผเดจเตเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เด‡เดคเตเดชเต‹เดฒเต† เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเด•เตเด‚:

$ strace -p 1337
...system call trace output...

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฑเต‚เดŸเตเดŸเต เด…เดตเด•เดพเดถเด™เตเด™เตพ เด†เดตเดถเตเดฏเดฎเดพเดฏเดฟ เดตเดจเตเดจเต‡เด•เตเด•เดพเด‚.

เด•เตเดŸเตเดŸเดฟเด•เดณเตเดŸเต† เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เตพ เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเตป -f เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•

เดธเตเดŸเตเดฐเต†เดฏเตเดธเต เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ, เด‡เดคเต เด’เดฐเต เดชเตเดฐเต‹เดธเดธเตเดธเต เดฎเดพเดคเตเดฐเดฎเต‡ เด•เดฃเตเดŸเต†เดคเตเดคเต‚. เดˆ เดชเตเดฐเด•เตเดฐเดฟเดฏ เดšเตˆเตฝเดกเต เดชเตเดฐเต‹เดธเดธเตเด•เดณเต† เดธเตเดชเต‹เตบ เดšเต†เดฏเตเดฏเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดšเตˆเตฝเดกเต เดชเตเดฐเต‹เดธเดธเต เดธเตเดชเต‹เตบ เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚, เดŽเดจเตเดจเดพเตฝ เดšเตˆเตฝเดกเต เดชเตเดฐเต‹เดธเดธเดฟเดจเตเดฑเต† เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเตเด•เตพ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เดฟเดฒเตเดฒ.

เด’เดฐเต เดšเตˆเตฝเดกเต เดชเตเดฐเต‹เดธเดธเตเดธเดฟเดฒเดพเดฃเต เดชเดฟเดถเด•เต เดŽเดจเตเดจเต เดจเดฟเด™เตเด™เตพ เด•เดฐเตเดคเตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ, เดชเตเดฐเดธเตเดคเดพเดตเดจ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• -f, เด‡เดคเต เด…เดคเดฟเดจเตเดฑเต† เด•เดฃเตเดŸเต†เดคเตเดคเตฝ เดชเตเดฐเดพเดชเตเดคเดฎเดพเด•เตเด•เตเด‚. เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดจเดฟเด™เตเด™เดณเต† เด•เต‚เดŸเตเดคเตฝ เด†เดถเดฏเด•เตเด•เตเดดเดชเตเดชเดคเตเดคเดฟเดฒเดพเด•เตเด•เตเด‚ เดŽเดจเตเดจเดคเดพเดฃเต เด‡เดคเดฟเดจเตเดฑเต† เดชเต‹เดฐเดพเดฏเตเดฎ. เดŽเดชเตเดชเต‡เดพเตพ เดธเตเดŸเตเดฐเต†เดฏเตเดธเต เด’เดฐเต เดชเตเดฐเต‹เดธเดธเตเดธเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด’เดฐเต เดคเตเดฐเต†เดกเต เดŸเตเดฐเต†เดฏเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด‡เดคเต เด•เต‹เตพ เด‡เดตเดจเตเดฑเตเด•เดณเตเดŸเต† เด’เดฐเตŠเดฑเตเดฑ เดธเตเดŸเตเดฐเต€เด‚ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดคเต เด’เดฐเต‡เดธเดฎเดฏเด‚ เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเดฎเตเดชเต‹เตพ, เด’เดฐเต เดธเดจเตเดฆเต‡เดถเด‚ เดตเดดเดฟ เดคเดŸเดธเตเดธเดชเตเดชเต†เดŸเตเดŸ เด•เต‹เดณเดฟเดจเตเดฑเต† เด†เดฐเด‚เดญเด‚ เดจเดฟเด™เตเด™เตพ เด•เดฃเตเดŸเต‡เด•เตเด•เดพเด‚ , เดชเดฟเดจเตเดจเต† - เดฎเดฑเตเดฑเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดทเตป เดฌเตเดฐเดพเดžเตเดšเตเด•เตพเด•เตเด•เดพเดฏเตเดณเตเดณ เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เด•เต‹เดณเตเด•เตพ, เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ - เด†เดฆเตเดฏเดคเตเดคเต‡เดคเดฟเดจเตเดฑเต† เด…เดตเดธเดพเดจเด‚ . เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŽเดฒเตเดฒเดพ เดŸเตเดฐเต†เดฏเตเดธเต เดซเดฒเด™เตเด™เดณเตเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดค เดซเดฏเดฒเตเด•เดณเดพเดฏเดฟ เดตเดฟเดญเดœเดฟเด•เตเด•เตเด• -ff (เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เดณเดฟเตฝ เดจเต‡เดคเตƒเดคเตเดตเด‚ เด† เดธเดฎเดฏเดคเตเดคเต เดธเตเดŸเตเดฐเต†เดฏเตเดธเต).

-e เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŸเตเดฐเต†เดฏเตเดธเต เดซเดฟเตฝเดŸเตเดŸเตผ เดšเต†เดฏเตเดฏเตเด•

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเดจเดพเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดธเดพเดงเตเดฏเดฎเดพเดฏ เดŽเดฒเตเดฒเดพ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเตเด•เดณเตเดŸเต†เดฏเตเด‚ เด’เดฐเต เดฏเดฅเดพเตผเดคเตเดฅ เด•เต‚เดฎเตเดชเดพเดฐเดฎเดพเดฃเต เดŸเตเดฐเต‡เดธเดฟเดจเตเดฑเต† เดซเดฒเด‚. เดชเดคเดพเด• -e เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŸเตเดฐเต†เดฏเตเดธเต เดซเดฟเตฝเดŸเตเดŸเตผ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚ (เด•เดพเดฃเตเด• เดจเต‡เดคเตƒเดคเตเดตเด‚ เด† เดธเดฎเดฏเดคเตเดคเต เดธเตเดŸเตเดฐเต†เดฏเตเดธเต). เดซเดฟเตฝเดŸเตเดŸเตผ เดšเต†เดฏเตเดค เดŸเตเดฐเต†เดฏเตโ€Œเดธเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดซเตเตพ เดŸเตเดฐเต†เดฏเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต‡เด•เตเด•เดพเตพ เดตเต‡เด—เดคเดฏเตเดณเตเดณเดคเดพเดฃเต เดŽเดจเตเดจเดคเดพเดฃเต เดชเตเดฐเดงเดพเดจ เดจเต‡เดŸเตเดŸเด‚ grep` at. เดธเดคเตเดฏเด‚ เดชเดฑเดžเตเดžเดพเตฝ, เดžเดพเตป เดฎเดฟเด•เตเด•เดตเดพเดฑเตเด‚ เดŽเดชเตเดชเต‹เดดเตเด‚ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ.

เดŽเดฒเตเดฒเดพ เดคเต†เดฑเตเดฑเตเด•เดณเตเด‚ เดฎเต‹เดถเดฎเดฒเตเดฒ

เดฒเดณเดฟเดคเดตเตเด‚ เดชเตŠเดคเตเดตเดพเดฏเดคเตเดฎเดพเดฏ เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚, เด’เดฐเต‡เดธเดฎเดฏเด‚ เดจเดฟเดฐเดตเดงเดฟ เดธเตเดฅเดฒเด™เตเด™เดณเดฟเตฝ เด’เดฐเต เดซเดฏเดฒเดฟเดจเดพเดฏเดฟ เดคเดฟเดฐเดฏเตเดจเตเดจ เด’เดฐเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดพเดฃเต, เด’เดฐเต เดทเต†เตฝ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเตพ เดซเดฏเตฝ เด…เดŸเด™เตเด™เตเดจเตเดจ เด’เดฐเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เดคเดฟเดฐเดฏเตเดจเตเดจเดคเต เดชเต‹เดฒเต†:

$ 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
...

"เด’เดฐเต เดชเดฟเดถเด•เต เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดŸ เด…เดญเตเดฏเตผเดคเตเดฅเดจ" เดชเต‹เดฒเตเดณเตเดณ เดนเตเดฏเต‚เดฑเดฟเดธเตเดฑเตเดฑเดฟเด•เตเดธเต เดชเตเดฐเดธเด•เตเดคเดฎเดพเดฏ เดชเดฟเดถเด•เตเด•เตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเดฟเตฝ เดจเดฒเตเดฒเดคเดพเดฃเต. เด…เดคเต†เดจเตเดคเดพเดฏเดพเดฒเตเด‚, เด…เดตเดธเดพเดจเด‚ เดฎเตเดคเตฝ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเต เดฏเตเด•เตเดคเดฟเดธเดนเดฎเดพเดฃเต.

เดธเดฟ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดŸเตเดฏเต‚เดŸเตเดŸเต‹เดฑเดฟเดฏเดฒเตเด•เตพ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเตเด•เตพ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเด‚.

เดธเดฟ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เด•เต‹เดณเตเด•เตพ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเตเด•เดณเดฒเตเดฒ, เดฎเดฑเดฟเดšเตเดšเต เดจเต‡เตผเดคเตเดค เด‰เดชเดฐเดฟเดคเดฒ เดชเดพเดณเดฟ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต. เด…เดคเดฟเดจเดพเตฝ, เดธเดฟเดฏเดฟเตฝ เดŽเด™เตเด™เดจเต†, เดŽเดจเตเดคเตเดšเต†เดฏเตเดฏเดฃเดฎเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพ เด…เตฝเดชเตเดชเดฎเต†เด™เตเด•เดฟเดฒเตเด‚ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดฟเดฏเดพเตฝ, เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ เดŸเตเดฐเต‡เดธเดฟเดจเตเดฑเต† เดซเดฒเด™เตเด™เตพ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเดณเตเดชเตเดชเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด•เต‹เดณเตเด•เตพ เดกเต€เดฌเด—เตเด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเตเดฐเดถเตโ€ŒเดจเดฎเตเดฃเตเดŸเต, เด…เดคเต‡ เด•เตเดฒเดพเดธเดฟเด•เต เดจเต‹เด•เตเด•เตเด• เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดฌเดฟเดœเดฏเตเดŸเต† เด—เตˆเดกเต.

เด•เต‚เดŸเตเดคเตฝ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เด‰เดฆเดพเดนเดฐเดฃเด‚

เดฒเดณเดฟเดคเดฎเดพเดฏ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เดฟเดจเตเดฑเต† เด‰เดฆเดพเดนเดฐเดฃเด‚ เดœเต‹เดฒเดฟ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดžเดพเตป เด•เต‚เดŸเตเดคเดฒเดพเดฏเดฟ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเดฟเดจเตเดฑเต† เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเดฎเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เด‡เดคเดฟเดจเด•เด‚ เดชเดฑเดžเตเดžเต เดธเตเดŸเตเดฐเต†เดฏเตเดธเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดšเดฟเดฒเดชเตเดชเต‹เตพ เด’เดฐเต เดฏเดฅเดพเตผเดคเตเดฅ เด…เดจเตเดตเต‡เดทเดฃเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต, เด…เดคเดฟเดจเดพเตฝ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดชเตเดฒเดฎเดพเดฏ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เดฟเดจเตเดฑเต† เดฏเดฅเดพเตผเดคเตเดฅ เดœเต€เดตเดฟเดค เด‰เดฆเดพเดนเดฐเดฃเด‚ เด‡เดคเดพ.

bcron - เดŸเดพเดธเตโ€Œเด•เต เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เดทเต†เดกเตเดฏเต‚เดณเตผ, *เดจเดฟเด•เตเดธเต เดกเต†เดฎเดฃเดฟเดจเตเดฑเต† เดฎเดฑเตเดฑเตŠเดฐเต เดจเดฟเตผเดตเตเดตเดนเดฃเด‚ เด•เตเดฐเต‡เดพเตบ. เด‡เดคเต เดธเต†เตผเดตเดฑเดฟเตฝ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต, เดŽเดจเตเดจเดพเตฝ เด†เดฐเต†เด™เตเด•เดฟเดฒเตเด‚ เดทเต†เดกเตเดฏเต‚เตพ เดŽเดกเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด‡เดคเดพเดฃเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต:

# 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: logsaggn20 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 #Ansible: logsaggn20 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) เด’เดฐเต เดซเดฏเตฝ เดกเดฟเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฑเดพเดฃเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚, เด‡เดคเต เดŽเดฒเตเดฒเดพ I/O เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เดฟเดจเตเด‚ *nix เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดซเดฏเตฝ เดกเดฟเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตผ 3 เดชเตเดฐเดคเดฟเดจเดฟเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเดจเตเดคเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เดŽเด™เตเด™เดจเต† เด•เดฃเตเดŸเต†เดคเตเดคเตเด‚? เดˆ เดชเตเดฐเดคเตเดฏเต‡เด• เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚ เดธเตเดŸเตเดฐเต†เดฏเตเดธเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเตเดฎเดพเดฏเดฟ -ัƒ (เดฎเตเด•เดณเดฟเตฝ เด•เดพเดฃเตเด•) เด…เดคเต เดธเตเดตเดฏเดฎเต‡เดต เดจเดฟเด™เตเด™เดณเต‹เดŸเต เดชเดฑเดฏเตเด‚, เดŽเดจเตเดจเดพเตฝ เด‡เดคเตเดชเต‹เดฒเตเดณเตเดณ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เด•เดฃเตเดŸเตเดชเดฟเดŸเดฟเด•เตเด•เดพเตป, เดซเดฒเด™เตเด™เตพ เดŽเด™เตเด™เดจเต† เดตเดพเดฏเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเตเด‚ เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเดพเดฎเต†เดจเตเดจเตเด‚ เด…เดฑเดฟเดฏเตเดจเตเดจเดคเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต.

เด’เดฐเต เดซเดฏเตฝ เดกเดฟเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฑเดฟเดจเตเดฑเต† เด‰เดฑเดตเดฟเดŸเด‚ เดจเดฟเดฐเดตเดงเดฟ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเตเด•เดณเดฟเตฝ เด’เดจเตเดจเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚ (เด‡เดคเต†เดฒเตเดฒเดพเด‚ เดกเดฟเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตผ เดŽเดจเตเดคเดฟเดจเตเดตเต‡เดฃเตเดŸเดฟเดฏเดพเดฃเต†เดจเตเดจเดคเดฟเดจเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต - เด’เดฐเต เด•เตบเดธเต‹เตพ, เด’เดฐเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดธเต‹เด•เตเด•เดฑเตเดฑเต, เดซเดฏเตฝ เดคเดจเตเดจเต† เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเดฑเตเดฑเต†เดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚), เดŽเดจเตเดจเดพเตฝ เด…เด™เตเด™เดจเต†เดฏเดพเด•เดŸเตเดŸเต†, เดžเด™เตเด™เตพ เดคเดฟเดฐเดฏเตเดจเตเดจเต 3 เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เดฟ เด•เต‹เดณเตเด•เตพ (เด…เดคเดพเดฏเดคเต, เดŸเตเดฐเต†เดฏเตโ€Œเดธเดฟเด‚เด—เต เดซเดฒเด™เตเด™เดณเดฟเตฝ เดžเด™เตเด™เตพ "= 3" เดคเดฟเดฐเดฏเตเดจเตเดจเต). เดˆ เดซเดฒเดคเตเดคเดฟเตฝ เด…เดตเดฏเดฟเตฝ 2 เด‰เดฃเตเดŸเต: เดคเตเดฑเด•เตเด•เตเด• เดเดฑเตเดฑเดตเตเด‚ เดฎเตเด•เดณเดฟเตฝ เด’เดชเตเดชเด‚ เดธเต‹เด•เตเด•เดฑเตเดฑเต เดฎเดงเตเดฏเดคเตเดคเดฟเตฝ. เดคเตเดฑเด•เตเด•เตเด• เดซเดฏเตฝ เดคเตเดฑเด•เตเด•เตเดจเตเดจเต เดชเด•เตเดทเต‡ เด…เดŸเดฏเตเด•เตเด•เตเด•(3) เด…เดคเต เดตเต€เดฃเตเดŸเตเด‚ เด…เดŸเดฏเตเดจเตเดจเดคเดพเดฏเดฟ เด•เดพเดฃเดฟเด•เตเด•เตเด‚. (Rake: เดซเดฏเตฝ เดกเดฟเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฑเตเด•เตพ เดคเตเดฑเด•เตเด•เตเด•เดฏเตเด‚ เด…เดŸเดฏเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เด…เดต เดตเต€เดฃเตเดŸเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดตเตเดจเตเดจเดคเดพเดฃเต). เดตเดฟเดณเดฟ เดธเต‹เด•เตเด•เดฑเตเดฑเต () เด‡เดคเต เดฎเตเดฎเตเดชเดคเตเดคเต† เด…เดตเดธเดพเดจเดฎเดพเดฏเดคเดฟเดจเดพเตฝ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฃเต เดตเดพเดฏเดฟเด•เตเด•เตเด• (), เด•เต‚เดŸเดพเดคเต† bcrontab เด’เดฐเต เดธเต‹เด•เตเด•เดฑเตเดฑเดฟเดฒเต‚เดŸเต† เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เด‡เดคเต เดฎเดพเดฑเตเดจเตเดจเต. เดซเดฏเตฝ เดกเดฟเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตผ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เด…เดŸเตเดคเตเดค เดตเดฐเดฟ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต unix เดกเตŠเดฎเต†เดฏเตเตป เดธเต‹เด•เตเด•เดฑเตเดฑเต เดตเดดเดฟเดฏเดฟเตฝ /var/run/bcron-spool.

เด…เดคเดฟเดจเดพเตฝ, เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดชเตเดฐเด•เตเดฐเดฟเดฏ เดžเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต unix เดธเต‹เด•เตเด•เดฑเตเดฑเต เดฎเดฑเตเดตเดถเดคเตเดคเต. เดธเต†เตผเดตเตผ เดตเดฟเดจเตเดฏเดพเดธเด™เตเด™เตพ เดกเต€เดฌเด—เตเด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต เดˆ เด†เดตเดถเตเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ เดฐเดฃเตเดŸเต เดตเตƒเดคเตเดคเดฟเดฏเตเดณเตเดณ เดคเดจเตเดคเตเดฐเด™เตเด™เตพ. เด†เดฆเตเดฏเดคเตเดคเต‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต 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 เด’เดฐเต เดฆเต€เตผเด˜เด•เดพเดฒ เดธเต†เตผเดตเดฑเดพเดฃเต, เด…เดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เด…เดฑเตเดฑเดพเดšเตเดšเตเดšเต†เดฏเตเดฏเดพเด‚ เดธเตเดŸเตเดฐเต†เดฏเตเดธเต เดชเต‹เดฒเตเดณเตเดณ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต strace -o /tmp/trace -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, SIGCHLD เดฎเตเดคเดฒเดพเดฏเดต) เดˆ เดชเตเดฐเด•เตเดฐเดฟเดฏ เด’เดฐเต เดšเตˆเตฝเดกเต เดชเตเดฐเต‹เดธเดธเต เด‰เดฃเตเดŸเดพเด•เตเด•เตเดจเตเดจเต, เด…เดคเต เดจเดฟเด™เตเด™เตพ เดŠเดนเดฟเด•เตเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดฏเดฅเดพเตผเดคเตเดฅ เดœเต‹เดฒเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดตเดณเตเดŸเต† เดชเดพเดค เดชเดฟเดŸเดฟเด•เตเด•เดฃเดฎเต†เด™เตเด•เดฟเตฝ, เด•เต‹เดณเดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเด•เตเด•เตเด• เดธเตโ€ŒเดŸเตเดฐเต‡เดธเต -เดŽเดซเต. เดชเตเดคเดฟเดฏ เดซเดฒเดคเตเดคเดฟเดฒเต† เดชเดฟเดถเด•เต เดธเดจเตเดฆเต‡เดถเดคเตเดคเดฟเดจเดพเดฏเดฟ เดธเตโ€ŒเดŸเตเดฐเต†เดฏเตโ€Œเดธเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดคเดฟเดฐเดฏเตเดฎเตเดชเต‹เตพ เดจเดฎเตเดฎเตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเต เด‡เดคเดพเดฃเต -f -o /tmp/trace -p 20629:

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 +++

เด‡เดชเตเดชเต‹เตพ, เด…เดคเตŠเดฐเต เด•เดพเดฐเตเดฏเดฎเดพเดฃเต. เดชเดพเดฅเดฟเตฝ เด’เดฐเต เดซเดฏเตฝ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดชเตเดฐเต‹เดธเดธเตเดธเต 21470-เดจเต "เด†เด•เตเดธเดธเต เดจเดฟเดทเต‡เดงเดฟเดšเตเดšเต" เดŽเดจเตเดจ เดชเดฟเดถเด•เต เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเต tmp/spool.21470.1573692319.854640 (เดจเดฟเดฒเดตเดฟเดฒเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดคเต). เดจเดฟเดฒเดตเดฟเดฒเต† เดตเตผเด•เตเด•เดฟเด‚เด—เต เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟ เดžเด™เตเด™เตพเด•เตเด•เต เด…เดฑเดฟเดฏเดพเดฎเต†เด™เตเด•เดฟเตฝ, เดฎเตเดดเตเดตเตป เดชเดพเดคเดฏเตเด‚ เดžเด™เตเด™เตพ เด…เดฑเดฟเดฏเตเด•เดฏเตเด‚ เดชเตเดฐเต‹เดธเดธเดฟเดจเต เด…เดคเดฟเดจเตเดฑเต† เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด• เดซเดฏเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดพเดคเตเดคเดคเต เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต†เดจเตเดจเต เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚. เดจเดฟเตผเดญเดพเด—เตเดฏเดตเดถเดพเตฝ, เดชเตเดฐเต‹เดธเดธเตเดธเต เด‡เดคเดฟเดจเด•เด‚ เดชเตเดฑเดคเตเดคเตเด•เดŸเดจเตเดจเดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ lsof -p 21470 เดจเดฟเดฒเดตเดฟเดฒเต† เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเดฟเดจเต, เดŽเดจเตเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเดฟเดชเดฐเต€เดค เดฆเดฟเดถเดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚ - เดกเดฏเดฑเด•เตเดŸเดฑเดฟ เดฎเดพเดฑเตเดฑเตเดจเตเดจ PID 21470 เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดจเต‹เด•เตเด•เตเด•. (เด’เดจเตเดจเตเด‚ เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, PID 21470 เด…เดต เด…เดคเดฟเดจเตเดฑเต† เดฐเด•เตเดทเดฟเดคเดพเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดพเดฐเดฎเตเดชเดฐเตเดฏเดฎเดพเดฏเดฟ เดฒเดญเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เดฃเด‚, เด‡เดคเต เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† lsof -เดชเดฟ เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ.) เดˆ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ เด†เดฃเต 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/spool.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

เด…เดตเดฟเดŸเต†เดฏเดพเดฃเต เดจเดพเดฏเดฏเต† เด•เตเดดเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต! เดธเต†เตผเดตเตผ เด’เดฐเต เดฏเต‚เดธเตผ เด•เตเดฐเต‹เตบ เด†เดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เดชเด•เตเดทเต‡ เดฑเต‚เดŸเตเดŸเดฟเดจเต เดฎเดพเดคเตเดฐเดฎเต‡ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดŽเดดเตเดคเดพเตป เด…เดจเตเดฎเดคเดฟเดฏเตเดณเตเดณเต‚ /var/spool/cron/tmp/. เดฒเดณเดฟเดคเดฎเดพเดฏ เด•เดฎเดพเตปเดกเต เดšเต—เตบ เด•เตเดฐเต‹เตบ /var/spool/cron/tmp/ เดซเต‡เดพเดดเตเดธเต เดšเต†เดฏเตเดฏเตเด‚ bcron เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•. (เด…เดคเต เดชเตเดฐเดถเตโ€Œเดจเดฎเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ เดธเด‚เดถเดฏเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต SELinux เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ AppArmor เดชเต‹เดฒเตเดณเตเดณ เด’เดฐเต เด•เต‡เตผเดฃเตฝ เดธเต†เด•เตเดฏเต‚เดฐเดฟเดฑเตเดฑเดฟ เดฎเตŠเดกเตเดฏเต‚เดณเดพเดฃเต, เด…เดคเดฟเดจเดพเตฝ เดžเดพเตป เด•เต†เตผเดฃเตฝ เดธเดจเตเดฆเต‡เดถ เดฒเต‹เด—เต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด‚ dmesg.)

เด†เด•เต†

เด’เดฐเต เดคเตเดŸเด•เตเด•เด•เตเด•เดพเดฐเดจเต† เดธเด‚เดฌเดจเตเดงเดฟเดšเตเดšเดฟเดŸเดคเตเดคเต‹เดณเด‚ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ เดŸเตเดฐเต†เดฏเตโ€Œเดธเตเด•เตพ เดตเดณเดฐเต† เดตเดฒเตเดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚, เดŽเดจเตเดจเดพเตฝ เดชเตŠเดคเตเดตเดพเดฏ เดตเดฟเดจเตเดฏเดพเดธ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เดณเตเดŸเต† เดฎเตเดดเตเดตเตป เด•เตเดฒเดพเดธเต เดกเต€เดฌเด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดฆเตเดฐเตเดค เดฎเดพเตผเด—เดฎเดพเดฃเต เด…เดตเดฏเต†เดจเตเดจเต เดžเดพเตป เด•เดพเดฃเดฟเดšเตเดšเตเดคเดฐเตเดฎเต†เดจเตเดจเต เดžเดพเตป เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต. เด’เดฐเต เดฎเตพเดŸเตเดŸเดฟเดชเตเดฐเต‹เดธเดธเต เดกเต€เดฌเด—เต เดšเต†เดฏเตเดฏเดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเต เดธเด™เตเด•เตฝเดชเตเดชเดฟเด•เตเด•เตเด• bcronเด’เดฐเต เด˜เดŸเตเดŸเด‚ เด˜เดŸเตเดŸเดฎเดพเดฏเตเดณเตเดณ เดกเต€เดฌเด—เตเด—เตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

เดธเดฟเดธเตโ€Œเดฑเตเดฑเด‚ เด•เต‹เตพ เดถเตƒเด‚เด–เดฒเดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดŸเตเดฐเต†เดฏเตโ€Œเดธเต เดซเดฒเด™เตเด™เตพ เดชเดฟเดจเตเดจเต‹เดŸเตเดŸเต เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดตเตˆเดฆเด—เตเดฆเตเดงเตเดฏเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต, เดŽเดจเตเดจเดพเตฝ เดžเดพเตป เดชเดฑเดžเตเดžเดคเตเดชเต‹เดฒเต†, เดฎเดฟเด•เตเด•เดตเดพเดฑเตเด‚ เดŽเดฒเตเดฒเดพเดฏเตโ€Œเดชเตเดชเต‹เดดเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต เดธเตเดŸเตเดฐเต†เดฏเตเดธเต, เดŽเดจเดฟเด•เตเด•เต เดŸเตเดฐเต†เดฏเตเดธเต เดซเดฒเด‚ เดฒเดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดตเดธเดพเดจเด‚ เดฎเตเดคเตฝ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจ เดชเดฟเดถเด•เตเด•เตพเด•เตเด•เดพเดฏเดฟ เดจเต‹เด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดŽเดจเตเดคเดพเดฏเดพเดฒเตเด‚, เดธเตเดŸเตเดฐเต†เดฏเตเดธเต เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เดฟเตฝ เดงเดพเดฐเดพเดณเด‚ เดธเดฎเดฏเด‚ เดฒเดพเดญเดฟเด•เตเด•เดพเตป เดŽเดจเตเดจเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เตเด‚ เด‰เดชเด•เดพเดฐเดชเตเดชเต†เดŸเตเดฎเต†เดจเตเดจเต เดžเดพเตป เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•