αž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸ αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΆαž˜αž½αž™ strace

αž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸ αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΆαž˜αž½αž™ strace

αž€αžΆαžšαž„αžΆαžšαž”αŸ’αžšαž…αžΆαŸ†αžαŸ’αž„αŸƒαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž‚αžΊαž€αžΆαžšαžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸαž™αžαžΆαžαŸ’αž‰αž»αŸ†αž…αŸ†αžŽαžΆαž™αž–αŸαž›αž…αŸ’αžšαžΎαž“αž€αŸ’αž“αž»αž„αž€αžΆαžšαž–αŸ’αž™αžΆαž™αžΆαž˜αž†αŸ’αž›αžΎαž™αžŸαŸ†αžŽαž½αžšαžŠαžΌαž…αž‡αžΆαŸ–

  • αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸαŸ‡αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž˜αŸ‚αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž‰αž»αŸ†αž‘αŸαŸ” αž αŸαžαž»αž’αŸ’αžœαžΈ?
  • αž˜αŸ’αžŸαž·αž›αž˜αž·αž‰ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸαŸ‡αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž‰αž»αŸ† αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αž„αŸƒαž“αŸαŸ‡αžœαžΆαž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αŸαŸ” αž αŸαžαž»αž’αŸ’αžœαžΈ?

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž”αŸ’αžšαž—αŸαž‘αž“αŸƒαž€αžΆαžšαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αžαž»αžŸαž–αžΈαž€αžΆαžšαž€αŸ‚αž€αŸ†αž αž»αžŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αž˜αŸ’αž˜αžαžΆαŸ” αž€αžΆαžšαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαž‡αžΆαž‘αŸ€αž„αž‘αžΆαžαŸ‹αž‚αžΊαž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαž“αŸƒαž€αžΌαžŠ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αžΆαžšαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαž“αŸƒαž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž‚αžΊαž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αžšαžœαžΆαž„αž€αžΌαžŠ αž“αž·αž„αž”αžšαž·αžŸαŸ’αžαžΆαž“αŸ” αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž«αžŸαž‚αž›αŸ‹αž“αŸƒαž”αž‰αŸ’αž αžΆαž‚αžΊαž‡αžΆαž€αŸ†αž αž»αžŸαž‘αžΌαž‡αžΈαžαž›αž€αŸαžŠαŸ„αž™ αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž’αŸ’αžœαžΈαŸ—αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αž½αž™ αž“αž·αž„αž˜αž·αž“αž˜αŸ‚αž“αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž˜αžΆαž“αž“αŸαž™αžαžΆαž”αž‰αŸ’αž αžΆαž‚αžΊαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αžŸαŸ’αžαžΆαž“αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž§αž”αž€αžšαžŽαŸαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαž’αž˜αŸ’αž˜αžαžΆαžŠαžΌαž…αž‡αžΆ gdb αžαŸ’αž‰αž»αŸ†β€‹αž˜αžΆαž“β€‹αž§αž”αž€αžšαžŽαŸβ€‹αž•αŸ’αžŸαŸαž„β€‹αž‚αŸ’αž“αžΆβ€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž€αžΆαžšβ€‹αž”αŸ†αž”αžΆαžαŸ‹β€‹αž€αŸ†αž αž»αžŸβ€‹αž€αžΆαžšβ€‹αžŠαžΆαž€αŸ‹β€‹αž–αž„αŸ’αžšαžΆαž™αŸ” αž αžΎαž™αž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž…αžΌαž›αž…αž·αžαŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαžŠαžΌαž…αž‡αžΆ "αž αŸαžαž»αž’αŸ’αžœαžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸαŸ‡αž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž‰αž»αŸ†?" αž αŸ… αžαŸ’αžŸαŸ‚.

αžαžΎβ€‹αž’αŸ’αžœαžΈβ€‹αž‘αŸ…β€‹αž‡αžΆβ€‹αžαŸ’αžŸαŸ‚?

αžαŸ’αžŸαŸ‚ αž‚αžΊαž‡αžΆαž§αž”αž€αžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ "αžαžΆαž˜αžŠαžΆαž“αž€αžΆαžšαž αŸ…αžαžΆαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’"αŸ” αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ†αž”αžΌαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž›αžΈαž“αž»αž… αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž›αŸ’αž”αž·αž…αž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαžŠαžΌαž…αž‚αŸ’αž“αžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž‡αžΆαž˜αž½αž™αž§αž”αž€αžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž•αŸ’αžŸαŸαž„αž‘αŸ€αž (αžŒαžΈαž’αžΈαžŠ ឬ ktrace).

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αžŽαžΆαžŸαŸ‹αŸ” αž’αŸ’αž“αž€αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžαŸ’αžšαžΌαžœαž€αžΆαžšαžšαžαŸ‹ strace αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŽαžΆαž˜αž½αž™ αž αžΎαž™αžœαžΆαž“αžΉαž„αž›αž»αž”αž€αžΆαžšαž αŸ…αžαžΆαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ (αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžŠαŸ†αž”αžΌαž„αž’αŸ’αž“αž€αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαžαŸ’αžšαžΌαžœαžŠαŸ†αž‘αžΎαž„αžœαžΆαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αž€αŸαžŠαŸ„αž™αŸ” αžαŸ’αžŸαŸ‚):

$ 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 αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαžΊαžŽαŸ‚αž›αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ” αž˜αžΆαž“αž–αŸαž›αž˜αž½αž™ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αžΆαž“αž…αžΌαž›αž”αŸ’αžšαžΎαžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž‘αŸ…αž€αžΆαž“αŸ‹αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αžŠαŸ‚αž›αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎβ€‹αžœαžΆβ€‹αžαŸ’αžšαžΌαžœβ€‹αž€αžΆαžšβ€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž”αž„αŸ’αž αžΆαž‰β€‹αž’αŸ’αžœαžΈβ€‹αž˜αž½αž™β€‹αž“αŸ…β€‹αž›αžΎβ€‹αž’αŸαž€αŸ’αžšαž„αŸ‹ αžœαžΆβ€‹αž”αžΆαž“β€‹αž›αŸαž„β€‹αž‡αžΆαž˜αž½αž™β€‹αž…αŸ’αžšαž€β€‹αž¬β€‹αž€αžΆαžšβ€‹αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡β€‹αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αž‚αžΌαžŸβ€‹αž•αŸ‚αž“αž‘αžΈβ€‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž§αž”αž€αžšαžŽαŸβ€‹αžœαžΈαžŠαŸαž’αžΌαŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž–αž αž»αž˜αž»αžαž„αžΆαžšαž”αžΆαž“αž€αŸ’αž›αžΆαž™αž‡αžΆαž€αžΆαžšαž–αŸαž‰αž“αž·αž™αž˜ αž—αžΆαž–αžœαžΉαž€αžœαžšαž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž•αŸ’αžŸαŸαž„αŸ—αž”αžΆαž“αžœαžΆαž™αž›αž»αž€αž›αžΎαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αŸ” αž€αŸ†αž αž»αžŸβ€‹αž€αŸ’αž“αž»αž„β€‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈβ€‹αž˜αž½αž™β€‹αž’αžΆαž…β€‹αž’αŸ’αžœαžΎβ€‹αž±αŸ’αž™β€‹αž’αŸ’αž“αž€β€‹αž•αŸ’αžŸαŸαž„β€‹αž’αŸ’αž›αžΆαž€αŸ‹β€‹αž…αž»αŸ‡ αž”αžΎβ€‹αž˜αž·αž“αž˜αŸ‚αž“β€‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’β€‹αž‘αžΆαŸ†αž„αž˜αžΌαž›αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αžšαž”αŸ€αž”αž―αž€αžŸαž·αž‘αŸ’αž’αž· (ឬ "αž€αžΆαžšαž€αžΆαžšαž–αžΆαžšαžŸαŸ†αž‘αŸαž„αžšαŸ„αž‘αŸ") αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαŸ’αž›αž½αž“αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸŠαžΈαž—αžΈαž™αžΌαŸ” αžαžΊαžŽαŸ‚αž›αž”αžΆαž“αž€αŸ’αž›αžΆαž™αž‡αžΆαž―αž€αžŸαž·αž‘αŸ’αž’αž·αž”αŸ†αž•αž»αžαŸ– αžœαžΆαž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαž…αžΌαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αŸαž‰αž›αŸαž‰αž‘αŸ…αž€αžΆαž“αŸ‹αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„ αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αžαž·αž…αž‡αžΆαž„αž˜αž»αž“ αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαžαŸ‚αžŸαŸ’αž“αžΎαžŸαž»αŸ†αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž–αžΈαžαžΊαžŽαŸ‚αž›αžšαž½αž…αž αžΎαž™αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαž αŸ…αžαžΆαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ”

αž“αŸ…αž€αž˜αŸ’αžšαž·αžαž‚αŸ„αž›αž–αžΈαžš αž€αžΆαžšαž αŸ…αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αžΊαžαž»αžŸαž‚αŸ’αž“αžΆαž”αž“αŸ’αžαž·αž…αž”αž“αŸ’αžαž½αž…αž–αžΈαž€αžΆαžšαž αŸ…αž˜αž»αžαž„αžΆαžšαžŸαžΆαž˜αž‰αŸ’αž‰ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž”αŸ’αžšαžΎ wrapper αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαŸ” αž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αŸ” αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš POSIX C αž˜αžΆαž“αž€αžΆαžšαž αŸ…αž˜αž»αžαž„αžΆαžš សរសេរ ()αžŠαŸ‚αž›αž˜αžΆαž“αž€αžΌαžŠαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž αŸ…αž”αŸ’αžšαž–αŸαž“αŸ’αž’ សរសេរ.

αž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸ αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΆαž˜αž½αž™ strace

αžŸαžšαž»αž”αž˜αž€ αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αžŽαžΆαž˜αž½αž™αžšαžœαžΆαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αž”αžšαž·αžŸαŸ’αžαžΆαž“αžšαž”αžŸαŸ‹αžœαžΆ (αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžš) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαž αŸ…αžαžΆαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αž½αž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž˜αŸ‚αž“αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αžœαžΆαž‡αžΆαž€αžΆαžšαž›αŸ’αž’αž€αŸ’αž“αž»αž„αž€αžΆαžšαž˜αžΎαž›αž›αž‘αŸ’αž’αž•αž›αžαžΆαž˜αžŠαžΆαž“αž€αžΆαžšαž αŸ…αžαžΆαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ” αž–αž·αžŸαŸαžŸαž‡αžΆαž„αž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αž αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž”αž‰αŸ’αž‡αžΈαž“αŸƒαž…αŸ†αžŽαž»αž…αž’αž˜αŸ’αž˜αžαžΆαžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžœαž·αž—αžΆαž‚αžŠαŸ„αž™αž”αŸ’αžšαžΎαžŠαžΆαž“αž€αžΆαžšαž αŸ…αžαžΆαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ–

  • αž€αž»αž„αžŸαžΌαž› I/O
  • αž”αžŽαŸ’αžαžΆαž‰ I/O
  • αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžš αž“αž·αž„αž―αž€αžŸαžΆαžš I/O
  • αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž’αžΆαž™αž»αž€αžΆαž›αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš
  • αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž€αž˜αŸ’αžšαž·αžαž‘αžΆαž”
  • αž…αžΌαž›αž”αŸ’αžšαžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž‡αžΆαž§αž”αž€αžšαžŽαŸαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹

αž–αŸαž›αžŽαžΆαžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΎαžαŸ’αžŸαŸ‚?

αž€αŸ’αž“αž»αž„β€‹αž‘αŸ’αžšαžΉβ€‹αžŸαŸ’αžαžΈ, αžαŸ’αžŸαŸ‚ αž”αŸ’αžšαžΎαž‡αžΆαž˜αž½αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŽαžΆαž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αž“αŸ’αž›αŸ„αŸ‡αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŽαžΆαž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αž“αŸ’αž›αŸ„αŸ‡αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαŸ’αžšαžΌαžœαžαŸ‚αž’αŸ’αžœαžΎαž€αžΆαžšαž αŸ…αž‡αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ” αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαž“αŸ‹αžαŸ‚αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž‡αžΆαž˜αž½αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αž˜αŸ’αžšαž·αžαž‘αžΆαž” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž€αŸαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž—αžΆαžŸαžΆαž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŠαžΌαž…αž‡αžΆ Python αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž’αžΆαž…αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αžŸαŸ†αž‘αŸαž„αžšαŸ†αžαžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž–αŸαž›αžšαžαŸ‹ αž“αž·αž„αž’αŸ’αž“αž€αž”αž€αž”αŸ’αžšαŸ‚αŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαž·αžšαžΈαžšαž»αž„αžšαžΏαž„αžšαž”αžŸαŸ‹αžœαžΆαŸ” αžαŸ’αžŸαŸ‚ αž”αž„αŸ’αž αžΆαž‰β€‹αžαŸ’αž›αž½αž“β€‹αžœαžΆβ€‹αž€αŸ’αž“αž»αž„β€‹αž€αŸ†αž‘αž»αž„β€‹αž–αŸαž›β€‹αž”αŸ†αž”αžΆαžαŸ‹β€‹αž€αŸ†αž αž»αžŸβ€‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈβ€‹αžŠαŸ‚αž›β€‹αžŠαŸ†αžŽαžΎαžšβ€‹αž€αžΆαžšβ€‹αž”αžΆαž“β€‹αž›αŸ’αž’β€‹αž“αŸ…β€‹αž›αžΎβ€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž˜αž½αž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž—αŸ’αž›αžΆαž˜αŸ—β€‹αž“αŸ„αŸ‡β€‹αžˆαž”αŸ‹β€‹αž’αŸ’αžœαžΎβ€‹αž€αžΆαžšβ€‹αž›αžΎβ€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž˜αž½αž™β€‹αž‘αŸ€αž αžŠαŸ„αž™β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αžŸαžΆαžšβ€‹αž˜αž·αž“β€‹αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹β€‹αž’αŸ†αž–αžΈβ€‹αž―αž€αžŸαžΆαžš αž€αžΆαžšβ€‹αž’αž“αž»αž‰αŸ’αž‰αžΆαž αž¬β€‹αž€αžΆαžšβ€‹αž–αŸ’αž™αžΆαž™αžΆαž˜β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αž‡αŸ„αž‚αž‡αŸαž™β€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·β€‹αž–αžΆαž€αŸ’αž™β€‹αž”αž‰αŸ’αž‡αžΆβ€‹αž˜αž½αž™β€‹αž…αŸ†αž“αž½αž“ αž¬β€‹αž’αŸ’αžœαžΈβ€‹αž•αŸ’αžŸαŸαž„β€‹αž‘αŸ€αž... αžœαžΆβ€‹αž‡αžΆβ€‹αž€αžΆαžšβ€‹αžŸαŸ„αž€αžŸαŸ’αžŠαžΆαž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αžœαžΆβ€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αž‡αŸ„αž‚αž‡αŸαž™β€‹αž‘αŸαŸ” αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž™αŸ‰αžΆαž„αž›αŸ’αž’αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αž‰αŸ’αž αžΆαž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŠαžΌαž…αž‡αžΆαž€αŸ†αž αž»αžŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαŸ” αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαžœαžΆαž‘αžΆαž˜αž‘αžΆαžšαž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆ αžαŸ’αžŸαŸ‚αž–αŸαž›αžαŸ’αž›αŸ‡ αžŠαžΆαž“ αž“αž·αž„αž§αž”αž€αžšαžŽαŸαž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹ (αžŠαžΌαž…αž‡αžΆαž§αž”αž€αžšαžŽαŸαž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ openssl αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžš) αŸ”

αž™αžΎαž„β€‹αž“αžΉαž„β€‹αž”αŸ’αžšαžΎβ€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸβ€‹αž―αž€αžšαžΆαž‡αŸ’αž™β€‹αž‡αžΆβ€‹αž§αž‘αžΆαž αžšαžŽαŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž€αžΆαžšβ€‹αžαžΆαž˜αžŠαžΆαž“β€‹αž€αžΆαžšβ€‹αž αŸ…β€‹αž‘αžΌαžšαžŸαž–αŸ’αž‘β€‹αžαžΆαž˜β€‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’β€‹αž’αžΆαž…β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž’αŸ’αžœαžΎβ€‹αž‡αžΆβ€‹αž‰αžΉαž€β€‹αž‰αžΆαž”αŸ‹β€‹αž“αŸ…β€‹αž›αžΎβ€‹αžœαŸαž‘αž·αž€αžΆβ€‹αžŠαžΆαž€αŸ‹β€‹αž–αž„αŸ’αžšαžΆαž™β€‹αžŠαŸ‚αž›β€‹αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰β€‹αž‡αžΆαž„β€‹αž“αŸαŸ‡αŸ” αž’αŸ’αž“αž€αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžαŸ’αžšαžΌαžœαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž§αž”αž€αžšαžŽαŸαžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ”

αž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž€αžΆαžšαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαžŸαžΆαž˜αž‰αŸ’αž‰

αž…αžΌαžšαž“αž·αž™αžΆαž™αžαžΆαž’αŸ’αž“αž€αž…αž„αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸαž’αžŸαŸ’αž…αžΆαžšαŸ’αž™ foo αž αžΎαž™αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ„αž™αŸ–

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

αžαžΆαž˜αž˜αžΎαž›αž‘αŸ… αžœαžΆαž˜αž·αž“αž’αžΆαž…αžšαž€αž”αžΆαž“αž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αžΆαž“αžŸαžšαžŸαŸαžšαž‘αŸαŸ” αžœαžΆαž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž–αŸαž›αžαŸ’αž›αŸ‡αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αž‰αŸ’αž…αž”αŸ‹αž…αž„αž€αŸ’αžšαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž½αž™ αž–αž½αž€αž‚αŸαž”αžŠαž·αžŸαŸαž’αž‘αžΈαžαžΆαŸ†αž„αž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αžšαŸ†αž–αžΉαž„αž‘αž»αž€αŸ” αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž’αŸ’αžœαžΎαžαžΆαž˜αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈαž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž˜αž½αž™ αž’αŸ’αž“αž€αžšαž€αžƒαžΎαž‰αž―αž€αžŸαžΆαžšαžαž»αžŸαž‚αŸ’αž“αžΆαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αž–αžΈαž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αž’αŸ’αž“αž€αžšαŸ†αž–αžΉαž„αž‘αž»αž€αŸ” αž”αž‰αŸ’αž αžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž–αžΈαžšαž”αžΈαžœαž·αž“αžΆαž‘αžΈ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžŸαžΆαžšαž€αŸ†αž αž»αžŸαž”αŸ’αžšαžΆαž”αŸ‹αž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαžšαž€αž˜αžΎαž›αž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αŸαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαžšαž€αž˜αžΎαž›?

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž…αžΌαž›αž”αŸ’αžšαžΎαž€αžΌαžŠαž”αŸ’αžšαž—αž– αž’αŸ’αž“αž€αž’αžΆαž…αž’αžΆαž“αžœαžΆ αž“αž·αž„αžŸαŸ’αžœαŸ‚αž„αžšαž€αž’αŸ’αžœαžΈαŸ—αž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αŸ” αž•αŸ‚αž“αž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αžŠαŸαž›αŸ’αž’ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž›αžΏαž“αž”αŸ†αž•αž»αžαž“αŸ„αŸ‡αž‘αŸαŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž„αžΆαž€αž‘αŸ…αžšαž€αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαž˜αž½αž™αž‡αŸ†αž αžΆαž“αž˜αŸ’αžαž„αŸ—αžŠαžΌαž…αž‡αžΆ gdb αž αžΎαž™αž˜αžΎαž›αžαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αŸ’αžœαžΎαž’αŸ’αžœαžΈ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž‡αžΆαž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž…αž“αžΆαž‘αžΎαž„αž‡αžΆαž–αž·αžŸαŸαžŸαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž αžΆαž‰αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž”αžšαž·αžŸαŸ’αžαžΆαž“αŸ– αžαŸ’αžŸαŸ‚.

αžŸαŸαž…αž€αŸ’αžαžΈαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“ αžαŸ’αžŸαŸ‚ αž”αŸ’αžšαž αŸ‚αž›β€‹αž‡αžΆβ€‹αž˜αžΎαž›β€‹αž‘αŸ…β€‹αž˜αž·αž“β€‹αž’αžŸαŸ‹β€‹αž”αŸ’αžšαžΆαž€αŸ‹ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αžŠαŸ†αžŽαžΉαž„β€‹αž›αŸ’αž’β€‹αž‚αžΊβ€‹αžαžΆβ€‹αžœαžΆβ€‹αž—αžΆαž‚β€‹αž…αŸ’αžšαžΎαž“β€‹αž’αžΆαž…β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž‚αŸβ€‹αž˜αž·αž“β€‹αž’αžΎαž–αžΎβ€‹αžŠαŸ„αž™β€‹αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αŸ” αž‡αžΆαž‰αžΉαž€αž‰αžΆαž”αŸ‹αžœαžΆαž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžΎ -o operator αžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž›αž‘αŸ’αž’αž•αž›αžαžΆαž˜αžŠαžΆαž“αž‘αŸ…αž―αž€αžŸαžΆαžšαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž˜αž½αž™αŸ–

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

αž”αŸ’αžšαž αŸ‚αž›αž‘αŸ†αž–αŸαžšαž‘αžΈαž˜αž½αž™αž‘αžΆαŸ†αž„αž˜αžΌαž›αž“αŸƒαž›αž‘αŸ’αž’αž•αž› αžαŸ’αžŸαŸ‚ - αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαžšαŸ€αž”αž…αŸ†αž€αž˜αŸ’αžšαž·αžαž‘αžΆαž”αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αžΆαž‰αŸ‹αž”αž„αŸ’αž αŸ„αŸ‡αŸ” (αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αž…αŸ’αžšαžΎαž“αŸ” αž˜αŸ‰αžΆαž”αŸ‹, αž˜αž·αž“αž€αžΆαžšαž–αžΆαžš, αž—αž½αž™ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΈαŸ—αžŠαžΌαž…αž‡αžΆαž€αžΆαžšαžšαž€αžƒαžΎαž‰αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž€αž˜αŸ’αžšαž·αžαž‘αžΆαž” αž“αž·αž„αž”αž„αŸ’αž αžΆαž‰αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžαžΆαž˜αžœαž“αŸ’αžαŸ”) αžαžΆαž˜αž–αž·αž αž€αŸ†αž‘αž»αž„αž–αŸαž›αž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαž›αž‘αŸ’αž’αž•αž› αžαŸ’αžŸαŸ‚ αžœαžΆαž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αžΆαž“αž–αžΈαž‘αžΈαž”αž‰αŸ’αž…αž”αŸ‹αŸ” αžœαžΆαž“αžΉαž„αž˜αžΆαž“αž€αžΆαžšαž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„αžαžΆαž„αž€αŸ’αžšαŸ„αž˜ αžŸαžšαžŸαŸαžšαžŠαŸ‚αž›αž”αž„αŸ’αž αžΆαž‰αžŸαžΆαžšαž€αŸ†αž αž»αžŸαŸ” αž™αžΎαž„αž˜αžΎαž›αž‘αŸ…αžαžΆαž„αž›αžΎαž αžΎαž™αžƒαžΎαž‰αž€αžΆαžšαž αŸ…αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž˜αžΆαž“αž€αŸ†αž αž»αžŸαžŠαŸ†αž”αžΌαž„ - αž€αžΆαžšαž αŸ… αž”αžΎαž€αžŠαŸ‚αž›αž”αŸ„αŸ‡αž…αŸ„αž›αž€αŸ†αž αž»αžŸ ENOENT ("αžšαž€αž˜αž·αž“αžƒαžΎαž‰αž―αž€αžŸαžΆαžš αž¬αžαžαž―αž€αžŸαžΆαžš") αž€αŸ†αž–αž»αž„αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αžΎαž€ /etc/foo/config.json. αž“αŸαŸ‡αž‡αžΆαž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‚αž½αžšαžαŸ‚αžŸαŸ’αžαž·αžαž“αŸ…αŸ”

αž“αŸαŸ‡αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαž˜αž½αž™αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž“αž·αž™αžΆαž™αžαžΆ 90% αž“αŸƒαž–αŸαž›αžœαŸαž›αžΆαžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž”αŸ’αžšαžΎ αžαŸ’αžŸαŸ‚αž‚αŸ’αž˜αžΆαž“αž’αŸ’αžœαžΈαž–αž·αž”αžΆαž€αž’αŸ’αžœαžΎαž‡αžΆαž„αž“αŸαŸ‡αž‘αŸαŸ” αžαžΆαž„β€‹αž€αŸ’αžšαŸ„αž˜β€‹αž“αŸαŸ‡β€‹αž‚αžΊβ€‹αž‡αžΆβ€‹αž˜αž‚αŸ’αž‚αž»αž‘αŸ’αž‘αŸαžŸαž€αŸβ€‹αž”αŸ†αž”αžΆαžαŸ‹β€‹αž€αŸ†αž αž»αžŸβ€‹αž‡αžΆβ€‹αž‡αŸ†αž αžΆαž“β€‹αžŠαŸ„αž™β€‹αž‡αŸ†αž αžΆαž“β€‹αž–αŸαž‰αž›αŸαž‰αŸ–

  • αž˜αžΆαž“αž€αžΆαžšαžαž€αž…αž·αžαŸ’αžαžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αžŸαžΆαžšαž˜αž·αž“αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αž’αŸ†αž–αžΈαž”αž‰αŸ’αž αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’-y αž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž½αž™αŸ”
  • αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αžΎαž„αžœαž·αž‰αž‡αžΆαž˜αž½αž™ αžαŸ’αžŸαŸ‚
  • αžŸαŸ’αžœαŸ‚αž„αžšαž€αžŸαžΆαžšαž€αŸ†αž αž»αžŸαž€αŸ’αž“αž»αž„αž›αž‘αŸ’αž’αž•αž›αžαžΆαž˜αžŠαžΆαž“
  • αž‘αžΎαž„β€‹αžαŸ’αž–αžŸαŸ‹β€‹αžšαž αžΌαžβ€‹αž‘αžΆαž›αŸ‹β€‹αžαŸ‚β€‹αž’αŸ’αž“αž€β€‹αž…αž»αž…β€‹αž€αžΆαžšβ€‹αž αŸ…β€‹αž‘αžΌαžšαžŸαž–αŸ’αž‘β€‹αžŠαŸ‚αž›β€‹αž”αžšαžΆαž‡αŸαž™β€‹αž›αžΎαž€β€‹αžŠαŸ†αž”αžΌαž„

αžœαžΆαž‘αŸ†αž“αž„αžŽαžΆαžŸαŸ‹αžŠαŸ‚αž›αž€αžΆαžšαž αŸ…αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž€αŸ’αž“αž»αž„αž‡αŸ†αž αžΆαž“αž‘αžΈ 4 αž“αžΉαž„αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαž»αžŸαŸ”

αž–αŸαžαŸŒαž˜αžΆαž“αž‡αŸ†αž“αž½αž™

αž˜αž»αž“αž–αŸαž›αž”αž„αŸ’αž αžΆαž‰αž’αŸ’αž“αž€αž“αžΌαžœαž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž€αžΆαžšαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž‡αžΆαž„αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž”αž„αŸ’αž αžΆαž‰αž’αŸ’αž“αž€αž“αžΌαžœαž›αŸ’αž”αž·αž…αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– αžαŸ’αžŸαŸ‚:

αž”αž»αžšαžŸαž‚αžΊαž‡αžΆαž˜αž·αžαŸ’αžαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

αž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’ *nix αž‡αžΆαž…αŸ’αžšαžΎαž“ αž”αž‰αŸ’αž‡αžΈαž–αŸαž‰αž›αŸαž‰αž“αŸƒαž€αžΆαžšαž αŸ…αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αŸ…αž€αžΆαž“αŸ‹αžαžΊαžŽαŸ‚αž›αž’αžΆαž…αž‘αž‘αž½αž›αž”αžΆαž“αžŠαŸ„αž™αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž”αž»αžšαžŸ syscalls. αž’αŸ’αž“αž€αž“αžΉαž„αžƒαžΎαž‰αž’αŸ’αžœαžΈαŸ—αžŠαžΌαž…αž‡αžΆ brk(2)αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸαž™αžαžΆαž–αŸαžαŸŒαž˜αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž’αžΆαž…αž‘αž‘αž½αž›αž”αžΆαž“αžŠαŸ„αž™αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž”αž»αžšαžŸ 2 brk.

αžαž»αž„αžšαž½αž…αžαžΌαž…αŸ– αž”αž»αžšαžŸ 2 fork αž”αž„αŸ’αž αžΆαž‰αžαŸ’αž‰αž»αŸ†αž“αžΌαžœαž‘αŸ†αž–αŸαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ‚αž› សម () Π² GNU libc, αžŠαŸ‚αž›, αžœαžΆαž”αŸ’αžšαŸ‚αž…αŸαž‰, αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘ αž€αŸ’αž›αžΌαž“(). αž αŸ…αžαžΆαž˜αž“αŸαž™αžœαž·αž‘αŸ’αž™αžΆ សម αž“αŸ…αžαŸ‚αžŠαžŠαŸ‚αž›αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ„αž™αž”αŸ’αžšαžΎ សម ()αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΆαž“ - αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž˜αž·αž“αžŸαŸ’αžœαŸ‚αž„αžšαž€αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αžŽαžΆαž˜αž½αž™αž‘αŸαŸ” αžŸαž˜αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž–αž½αž€αž‚αŸαž“αžΉαž„αž˜αžΆαž“ αž€αŸ’αž›αžΌαž“(). αžαž»αž„αžšαž½αž…αž”αŸ‚αž”αž“αŸαŸ‡αž’αŸ’αžœαžΎαž±αŸ’αž™αž’αŸ’αž“αž€αž™αž›αŸ‹αž…αŸ’αžšαž‘αŸ†αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž”αŸ’αžšαž—αž–αž‡αžΆαž˜αž½αž™αž‘αž·αž“αŸ’αž“αž•αž› αžαŸ’αžŸαŸ‚.

αž”αŸ’αžšαžΎ -o αžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž›αž‘αŸ’αž’αž•αž›αž‘αŸ…αž―αž€αžŸαžΆαžš

αžαŸ’αžŸαŸ‚ αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž‘αž·αž“αŸ’αž“αž•αž›αž™αŸ‰αžΆαž„αž‘αžΌαž›αŸ†αž‘αžΌαž›αžΆαž™ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž‡αžΆαž‰αžΉαž€αž‰αžΆαž”αŸ‹αžœαžΆαž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž›αž‘αŸ’αž’αž•αž›αžŠαžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ (αžŠαžΌαž…αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαžαžΆαž„αž›αžΎ)αŸ” αž“αŸαŸ‡αž€αŸαž‡αž½αž™αž‡αŸ€αžŸαžœαžΆαž„αž€αžΆαžšαž—αžΆαž“αŸ‹αž…αŸ’αžšαž›αŸ†αž“αžΌαžœαž›αž‘αŸ’αž’αž•αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž›αž‘αŸ’αž’αž•αž›αž•αž„αžŠαŸ‚αžšαŸ” αžαŸ’αžŸαŸ‚ αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž»αž„αžŸαžΌαž›αŸ”

αž”αŸ’αžšαžΎ -s αžŠαžΎαž˜αŸ’αž”αžΈαž˜αžΎαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αž

αž’αŸ’αž“αž€αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž”αžΆαž“αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžƒαžΎαž‰αžαžΆ αž–αžΆαž€αŸ‹αž€αžŽαŸ’αžαžΆαž›αž‘αžΈαž–αžΈαžšαž“αŸƒαžŸαžΆαžšαž€αŸ†αž αž»αžŸαž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαžαžΆαž„αž›αžΎαž‘αŸαŸ” αžœαžΆαžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚ αžαŸ’αžŸαŸ‚ αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž”αž„αŸ’αž αžΆαž‰αžαŸ‚ 32 αž”αŸƒαžŠαŸ†αž”αžΌαž„αž“αŸƒαž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžšαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αž„αŸ‹αž˜αžΎαž›αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαžŸαžΌαž˜αž”αž“αŸ’αžαŸ‚αž˜αž’αŸ’αžœαžΈαž˜αž½αž™αžŠαžΌαž…αž‡αžΆ -s ៑៩្.៑៦៨.៑្្.៨៨ αž‘αŸ…αž€αžΆαžšαž αŸ… αžαŸ’αžŸαŸ‚.

-y αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαžαžΆαž˜αžŠαžΆαž“αž―αž€αžŸαžΆαžš αžšαž“αŸ’αž’ αž‡αžΆαžŠαžΎαž˜αŸ”

"αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αžΊαž‡αžΆαž―αž€αžŸαžΆαžš" αž˜αžΆαž“αž“αŸαž™αžαžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’ *nix αž’αŸ’αžœαžΎ I/O αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž–αžŽαŸŒαž“αžΆαž―αž€αžŸαžΆαžš αžαžΆαžαžΎαžœαžΆαž’αž“αž»αžœαžαŸ’αžαž…αŸ†αž–αŸ„αŸ‡αž―αž€αžŸαžΆαžš αž¬αž”αžŽαŸ’αžαžΆαž‰ αž¬αž”αŸ†αž–αž„αŸ‹αž’αž“αŸ’αžαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸαžŠαŸ„αž™αŸ” αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž–αž·αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαžαžΆαž˜αžŠαžΆαž“αž“αžΌαžœαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αž“αž€αžƒαžΎαž‰αž‡αžΆαžšαžΏαž„αž’αž˜αŸ’αž˜αžαžΆ αž’αžΆαž“ ΠΈ សរសេរ αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž αŸ…αž›αž‘αŸ’αž’αž•αž›αžαžΆαž˜αžŠαžΆαž“αŸ”

αžŠαŸ„αž™αž”αž“αŸ’αžαŸ‚αž˜αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžš -yαž’αŸ’αž“αž€αž“αžΉαž„αž”αž„αŸ’αžαŸ† αžαŸ’αžŸαŸ‚ αž€αŸ†αžŽαžαŸ‹αž…αŸ†αžŽαžΆαŸ†αž’αŸ’αž“αž€αž–αžŽαŸŒαž“αžΆαž―αž€αžŸαžΆαžšαž“αžΈαž˜αž½αž™αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„αž›αž‘αŸ’αž’αž•αž›αžŠαŸ„αž™αž…αŸ†αžŽαžΆαŸ†αž’αŸ†αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αžœαžΆαž…αž„αŸ’αž’αž»αž›αž”αž„αŸ’αž αžΆαž‰αŸ”

αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž½αž…αž αžΎαž™αž‡αžΆαž˜αž½αž™ -p**

αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž“αžΉαž„αžƒαžΎαž‰αž–αžΈαž§αž‘αžΆαž αžšαžŽαŸαžαžΆαž„αž€αŸ’αžšαŸ„αž˜ αž–αŸαž›αžαŸ’αž›αŸ‡αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžαžΆαž˜αžŠαžΆαž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž½αž…αž αžΎαž™αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‚αŸαžŠαžΉαž„αžαžΆαžœαžΆαž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš 1337 (αž“αž·αž™αžΆαž™αž…αŸαž‰αž–αžΈαž›αž‘αŸ’αž’αž•αž› ps) αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αž“αž€αž’αžΆαž…αžαžΆαž˜αžŠαžΆαž“αžœαžΆαžŠαžΌαž…αž“αŸαŸ‡αŸ–

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

αž’αŸ’αž“αž€αž’αžΆαž…αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŸαž·αž‘αŸ’αž’αž·αž‡αžΆ root αŸ”

αž”αŸ’αžšαžΎ -f αžŠαžΎαž˜αŸ’αž”αžΈαžαžΆαž˜αžŠαžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž”αžŸαŸ‹αž€αž»αž˜αžΆαžš

αžαŸ’αžŸαŸ‚ αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αžœαžΆαžαžΆαž˜αžŠαžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ‚αž˜αž½αž™αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸαŸ‡αž”αž„αŸ’αž€αžΎαžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž˜αžΆαžš αž“αŸ„αŸ‡αž€αžΆαžšαž αŸ…αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΆαžαŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž˜αžΆαžšαž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αžΆαžšαž αŸ…αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž˜αžΆαžšαž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž‘αŸαŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž‚αž·αžαžαžΆαž€αŸ†αž αž»αžŸαžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž˜αžΆαžš αžŸαžΌαž˜αž”αŸ’αžšαžΎαžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αž€αžΆαžšαžŽαŸ -fαžœαžΆαž“αžΉαž„αž”αžΎαž€αž€αžΆαžšαžαžΆαž˜αžŠαžΆαž“αžšαž”αžŸαŸ‹αžœαžΆαŸ” αž‚αž»αžŽαžœαž·αž”αžαŸ’αžαž·αž“αŸαŸ‡αž‚αžΊαžαžΆαž‘αž·αž“αŸ’αž“αž•αž›αž“αžΉαž„αž’αŸ’αžœαžΎαž±αŸ’αž™αž’αŸ’αž“αž€αž™αž›αŸ‹αž…αŸ’αžšαž‘αŸ†αžαŸ‚αž˜αž‘αŸ€αžαŸ” αž–αŸαž›αžŽαžΆβ€‹ αžαŸ’αžŸαŸ‚ αžαžΆαž˜αžŠαžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž½αž™ αž¬αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž˜αž½αž™ αžœαžΆαž”αž„αŸ’αž αžΆαž‰αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αžαŸ‚αž˜αž½αž™αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžœαžΆαžαžΆαž˜αžŠαžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž…αŸ’αžšαžΎαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™ αž’αŸ’αž“αž€αž’αžΆαž…αž“αžΉαž„αžƒαžΎαž‰αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž“αŸƒαž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αžŠαŸ‚αž›αžšαŸ†αžαžΆαž“αžŠαŸ„αž™αžŸαžΆαžšαž˜αž½αž™αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ - αž”αžΆαž…αŸ‹αž“αŸƒαž€αžΆαžšαž’αŸ†αž–αžΆαžœαž“αžΆαžœαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαžΆαžαžΆαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž αžΎαž™αž˜αžΆαž“αžαŸ‚αž–αŸαž›αž“αŸ„αŸ‡αž‘αŸ - αž…αž»αž„αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸƒαž‘αžΈαž˜αž½αž™ <…foocall αž”αž“αŸ’αž>. αž¬αž”αŸ†αž”αŸ‚αž€αž›αž‘αŸ’αž’αž•αž›αžŠαžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αŸ…αž‡αžΆαž―αž€αžŸαžΆαžšαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆ αžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαž•αž„αžŠαŸ‚αžšαŸ” -ff (αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαž“αŸ…αž€αŸ’αž“αž»αž„ αž—αžΆαž–αž‡αžΆαž’αŸ’αž“αž€αžŠαžΉαž€αž“αžΆαŸ† αž“αŸ…αž›αžΎ αžαŸ’αžŸαŸ‚).

αžαŸ’αžšαž„αžŠαžΆαž“αžŠαŸ„αž™αž”αŸ’αžšαžΎ -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
...

Heuristics αžŠαžΌαž…αž‡αžΆ "αžŸαŸ†αžŽαžΎαžŠαŸ‚αž›αž”αžšαžΆαž‡αŸαž™αž…αž»αž„αž€αŸ’αžšαŸ„αž™ αž˜αž»αž“αž–αŸαž›αžšαžΆαž™αž€αžΆαžšαžŽαŸαž’αŸ†αž–αžΈαž€αŸ†αž αž»αžŸ" αž‚αžΊαž›αŸ’αž’αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αŸ” αžαŸ’αžšαžΌαžœαžαžΆαžαžΆαž˜αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“ αžœαžΆαž‡αžΆαž‘αžΌαž‡αžΈαžαž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž–αžΈαž‘αžΈαž”αž‰αŸ’αž…αž”αŸ‹αŸ”

αž€αžΆαžšαž”αž„αŸ’αžšαŸ€αž“αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ C αž’αžΆαž…αž‡αž½αž™αž’αŸ’αž“αž€αž±αŸ’αž™αž™αž›αŸ‹αž–αžΈαž€αžΆαžšαž αŸ…αžαžΆαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ”

αž€αžΆαžšαž αŸ…αžαžΆαž˜αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž‘αŸ…αž€αžΆαž“αŸ‹αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ C αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž€αžΆαžšαž αŸ…αžαžΆαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αžαŸ‚αžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž•αŸ’αž‘αŸƒαžŸαŸ’αžαžΎαž„αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž™αž›αŸ‹αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹αž”αž“αŸ’αžαž·αž…αž’αŸ†αž–αžΈαžšαž”αŸ€αž” αž“αž·αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎαž“αŸ…αž€αŸ’αž“αž»αž„ C αžœαžΆαž“αžΉαž„αž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž™αž›αŸ‹αž’αŸ†αž–αžΈαž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαž αŸ…αžαžΆαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž’αŸ’αž“αž€β€‹αž˜αžΆαž“β€‹αž”αž‰αŸ’αž αžΆβ€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αž”αŸ†αž”αžΆαžαŸ‹β€‹αž€αŸ†αž αž»αžŸβ€‹αž€αžΆαžšβ€‹αž αŸ…β€‹αž‘αžΌαžšαžŸαž–αŸ’αž‘β€‹αž‘αŸ…β€‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’β€‹αž”αžŽαŸ’αžŠαžΆαž‰ αžŸαžΌαž˜β€‹αž˜αžΎαž›β€‹αž›αž€αŸ’αžαžŽαŸˆβ€‹αž”αž»αžšαžΆαžŽβ€‹αžŠαžΌαž…β€‹αž‚αŸ’αž“αžΆαŸ” αž˜αž‚αŸ’αž‚αž»αž‘αŸ’αž‘αŸαžŸαž€αŸαžšαž”αžŸαŸ‹ Bija αž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αžŽαŸ’αžαžΆαž‰.

αž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž€αžΆαžšαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž‡αžΆαž„αž“αŸαŸ‡αŸ”

αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž“αž·αž™αžΆαž™αžšαž½αž…αž αžΎαž™αžαžΆαž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž€αžΆαžšαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαžŸαžΆαž˜αž‰αŸ’αž‰αž‚αžΊαž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αžαŸ’αžšαžΌαžœαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž“αŸ…αž–αŸαž›αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™ αžαŸ’αžŸαŸ‚. αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž–αŸαž›αžαŸ’αž›αŸ‡αž€αžΆαžšαžŸαŸŠαžΎαž”αž’αž„αŸ’αž€αŸαžαž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαž‚αžΊαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž˜αž‘αžΆαžš αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αž“αŸƒαž€αžΆαžšαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αž‡αžΆαž„αž“αŸαŸ‡αŸ”

bcron - αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž—αžΆαžšαž€αž·αž…αŸ’αž… αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž“αŸƒ * αžŠαŸαž˜αž·αž“ nix cron. αžœαžΆβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αžŠαŸ†αž‘αžΎαž„β€‹αž“αŸ…β€‹αž›αžΎβ€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž˜αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž“αŸ…β€‹αž–αŸαž›β€‹αž“αžšαžŽαžΆβ€‹αž˜αŸ’αž“αžΆαž€αŸ‹β€‹αž–αŸ’αž™αžΆαž™αžΆαž˜β€‹αž€αŸ‚β€‹αžŸαž˜αŸ’αžšαž½αž›β€‹αž€αžΆαž›αžœαž·αž—αžΆαž‚ αž“αŸαŸ‡β€‹αž‡αžΆβ€‹αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αž€αžΎαžβ€‹αž‘αžΎαž„αŸ–

# 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) αž‚αžΊαž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž–αž·αž–αžŽαŸŒαž“αžΆαž―αž€αžŸαžΆαžš αžŠαŸ‚αž› *nix αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš I/O αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αžαžΎαžαŸ’αž‰αž»αŸ†αž’αžΆαž…αžŠαžΉαž„αžαžΆαž―αž€αžŸαžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆ 3 αžαŸ†αžŽαžΆαž„αž±αŸ’αž™αžŠαŸ„αž™αžšαž”αŸ€αž”αžŽαžΆ? αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž–αž·αžŸαŸαžŸαž“αŸαŸ‡αž’αŸ’αž“αž€αž’αžΆαž…αžšαžαŸ‹αž”αžΆαž“αŸ” αžαŸ’αžŸαŸ‚ αž‡αžΆαž˜αž½αž™αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžš -y (αžŸαžΌαž˜αž˜αžΎαž›αžαžΆαž„αž›αžΎ) αž αžΎαž™αžœαžΆαž“αžΉαž„αž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαžΎαž˜αŸ’αž”αžΈαžŸαŸ’αžœαŸ‚αž„αžšαž€αžœαžαŸ’αžαž»αžŠαžΌαž…αž“αŸαŸ‡ αžœαžΆαž–αž·αžαž‡αžΆαž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαžΉαž„αž–αžΈαžšαž”αŸ€αž”αž’αžΆαž“ αž“αž·αž„αž‰αŸ‚αž€αž›αž‘αŸ’αž’αž•αž›αžŠαžΆαž“αŸ”

αž”αŸ’αžšαž—αž–αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž–αžŽαŸŒαž“αžΆαž―αž€αžŸαžΆαžšαž’αžΆαž…αž‡αžΆαž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‡αžΆαž…αŸ’αžšαžΎαž“ (αžœαžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αžΊαž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž’αŸ’αž“αž€αž–αžŽαŸŒαž“αžΆαž‚αžΊαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ - αž€αž»αž„αžŸαžΌαž› αžšαž“αŸ’αž’αž”αžŽαŸ’αžαžΆαž‰ αž―αž€αžŸαžΆαžšαžαŸ’αž›αž½αž“αžœαžΆ αž¬αž’αŸ’αžœαžΈαž•αŸ’αžŸαŸαž„αž‘αŸ€αž) αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αžšαžΌαžœαžŸαŸ’αžœαŸ‚αž„αžšαž€αžœαžΆαžαžΆαž˜αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“αŸ” αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αžŠαŸ„αž™αžαŸ’αžšαž‘αž”αŸ‹αž›αŸαž 3 (ឧ. αž™αžΎαž„αžŸαŸ’αžœαŸ‚αž„αžšαž€ β€œ= 3” αž“αŸ…αž€αŸ’αž“αž»αž„αž›αž‘αŸ’αž’αž•αž›αžαžΆαž˜αžŠαžΆαž“)αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž›αž‘αŸ’αž’αž•αž›αž“αŸαŸ‡αž˜αžΆαž“ 2 αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž–αž½αž€αž‚αŸ: αž”αžΎαž€ αž“αŸ…αž€αŸ†αž–αžΌαž›αž“αž·αž„ αžšαž“αŸ’αž’ αž“αŸ…β€‹αž–αžΆαž€αŸ‹β€‹αž€β€‹αžŽαŸ’αžαžΆβ€‹αž›αŸ” αž”αžΎαž€ αž”αžΎαž€αž―αž€αžŸαžΆαžšαž”αŸ‰αž»αž“αŸ’αžαŸ‚ αž€αžΆαžšαž‡αž·αžαžŸαŸ’αž“αž·αž‘αŸ’αž’(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 /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. αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž€αžΆαžšαž„αžΆαžš cron αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αžΈαž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž’αŸ’αž“αž€αž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αž›αž‘αŸ’αž’αž•αž›αžŠαžΆαž“αžŠαŸ‚αž›αž˜αžΆαž“αž€αŸ†αž αž»αžŸαŸ” αž αžΎαž™αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž›αž‘αŸ’αž’αž•αž›αŸ–

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 αž•αŸ’αž‰αžΎαž‘αŸ… αž¬αž‘αž‘αž½αž›αž–αžΈαžšαž“αŸ’αž’αž“αŸ„αŸ‡αž‘αŸαŸ” αž‡αŸ†αž“αž½αžŸαž˜αž€αžœαž·αž‰ αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αŸαž‰αž›αŸαž‰ (αž€αŸ’αž›αžΌαž“, αžšαž„αŸ‹αž…αžΆαŸ† ៀ, SIGCHLD αž›) αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸαŸ‡αž”αž„αŸ’αž€αžΎαžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž˜αžΆαžš αžŠαŸ‚αž›αžαžΆαž˜αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαžŸαŸ’αž˜αžΆαž“ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαŸ” αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αž›αžΌαžœαžšαž”αžŸαŸ‹αž“αžΆαž„ αžŸαžΌαž˜αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž€αžΆαžšαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘ αž•αŸ’αž›αžΌαžœ -f. αž“αŸαŸ‡β€‹αž‡αžΆβ€‹αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αž™αžΎαž„β€‹αž“αžΉαž„β€‹αžšαž€β€‹αžƒαžΎαž‰β€‹αž“αŸ…β€‹αž–αŸαž›β€‹αžŠαŸ‚αž›β€‹αž™αžΎαž„β€‹αžŸαŸ’αžœαŸ‚αž„β€‹αžšαž€β€‹αžŸαžΆαžšβ€‹αž€αŸ†αž αž»αžŸβ€‹αž€αŸ’αž“αž»αž„β€‹αž›αž‘αŸ’αž’αž•αž›β€‹αžαŸ’αž˜αžΈβ€‹αž‡αžΆαž˜αž½αž™β€‹αž“αžΉαž„β€‹αžαŸ’αžŸαŸ‚β€‹ -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 - αž‘αŸ† αž˜αž·αž“αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αžƒαžΎαž‰αž‘αŸαŸ”) αž€αžΆαžšαž αŸ…αžαžΆαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αŸαŸ‡αž‚αžΊ ស៊ីឌី (αžŠαŸ‚αž›αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŸαŸ’αžœαŸ‚αž„αžšαž€αžŠαŸ„αž™αž‡αŸ†αž“αž½αž™αž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŸαŸ’αžœαŸ‚αž„αžšαž€αžαžΆαž˜αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαž‘αŸ†αž“αžΎαž”)αŸ” αž αžΎαž™αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αž”αž‰αŸ’αž…αŸ’αžšαžΆαžŸαžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž›αž‘αŸ’αž’αž•αž›αžαžΆαž˜αžŠαžΆαž“ αž‚αŸ’αžšαž”αŸ‹αž˜αž’αŸ’αž™αŸ„αž”αžΆαž™αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ 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 +++

(αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžœαž„αŸ’αžœαŸαž„ αž’αŸ’αž“αž€αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž…αž„αŸ‹αž’αžΆαž“αž’αžαŸ’αžαž”αž‘αž˜αž»αž“αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† αž’αŸ†αž–αžΈ * αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš nix αž“αž·αž„αžŸαŸ‚αž›.) αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ 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

αž“αŸ„αŸ‡β€‹αž αžΎαž™β€‹αž‡αžΆβ€‹αž€αž“αŸ’αž›αŸ‚αž„β€‹αžŠαŸ‚αž›β€‹αž†αŸ’αž€αŸ‚β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž‚αŸβ€‹αž€αž”αŸ‹β€‹! αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ cron αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αžαŸ‚ root αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αžŸαžšαžŸαŸαžšαž‘αŸ…αžαž /var/spool/cron/tmp/. αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŸαžΆαž˜αž‰αŸ’αž‰ chown cron /var/spool/cron/tmp/ αž“αžΉαž„β€‹αž”αž„αŸ’αžαŸ† bcron αž’αŸ’αžœαžΎαž€αžΆαžšαž”αžΆαž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ” (αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž“αŸ„αŸ‡αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž”αž‰αŸ’αž αžΆαž‘αŸ αž“αŸ„αŸ‡αž€αžΆαžšαžŸαž„αŸ’αžŸαŸαž™αžŠαŸ‚αž›αž‘αŸ†αž“αž„αž”αŸ†αž•αž»αžαž‚αžΊαž˜αŸ‰αžΌαžŒαž»αž›αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αžαžΊαžŽαŸ‚αž›αžŠαžΌαž…αž‡αžΆ SELinux ឬ AppArmor αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αžŸαžΆαžšαžαžΊαžŽαŸ‚αž›αž‡αžΆαž˜αž½αž™ dmesg.)

αžŸαžšαž»αž”

αžŠαžΆαž“αž€αžΆαžšαž αŸ…αžαžΆαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αžΆαž…αž˜αžΆαž“αž…αŸ’αžšαžΎαž“αž›αžΎαžŸαž›αž”αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ†αž”αžΌαž„ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αž‰αž»αŸ†αžŸαž„αŸ’αžƒαžΉαž˜αžαžΆαžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαžΆαž–αž½αž€αž‚αŸαž‚αžΊαž‡αžΆαžœαž·αž’αžΈαžšαž αŸαžŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ†αž”αžΆαžαŸ‹αž”αž‰αŸ’αž αžΆαž‘αžΌαž‘αŸ…αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αžΌαž‘αŸ…αŸ” αžŸαŸ’αžšαž˜αŸƒαžαžΆαž–αŸ’αž™αžΆαž™αžΆαž˜αž”αŸ†αž”αžΆαžαŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αž αž»αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš bcronαžŠαŸ„αž™αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸαž‡αžΆαž‡αŸ†αž αžΆαž“ αŸ— αŸ”

αž€αžΆαžšαž‰αŸ‚αž€αž›αž‘αŸ’αž’αž•αž›αž›αž‘αŸ’αž’αž•αž›αžαž™αž€αŸ’αžšαŸ„αž™αžαžΆαž˜αžαŸ’αžŸαŸ‚αžŸαž„αŸ’αžœαžΆαž€αŸ‹αž“αŸƒαž€αžΆαžšαž αŸ…αžαžΆαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αžΆαž˜αž‘αžΆαžšαž‡αŸ†αž“αžΆαž‰ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαžΌαž…αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž“αž·αž™αžΆαž™ αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‚αŸ’αžšαž”αŸ‹αž–αŸαž› αž€αžΆαžšαž”αŸ’αžšαžΎ αžαŸ’αžŸαŸ‚αžαŸ’αž‰αž»αŸ†β€‹αž‚αŸ’αžšαžΆαž“αŸ‹β€‹αžαŸ‚β€‹αž‘αž‘αž½αž›β€‹αž”αžΆαž“β€‹αž›αž‘αŸ’αž’αž•αž›β€‹αžŠαžΆαž“β€‹αž αžΎαž™β€‹αžŸαŸ’αžœαŸ‚αž„β€‹αžšαž€β€‹αž€αŸ†αž αž»αžŸβ€‹αž…αžΆαž”αŸ‹β€‹αž•αŸ’αžαžΎαž˜β€‹αž–αžΈβ€‹αž…αž»αž„β€‹αž”αž‰αŸ’αž…αž”αŸ‹αŸ” αž™αŸ‰αžΆαž„β€‹αžŽαžΆβ€‹αž€αŸβ€‹αžŠαŸ„αž™ αžαŸ’αžŸαŸ‚ αž‡αž½αž™αžαŸ’αž‰αž»αŸ†αžŸαž“αŸ’αžŸαŸ†αž–αŸαž›αžœαŸαž›αžΆαž…αŸ’αžšαžΎαž“αž›αžΎαž€αžΆαžšαž€αŸ‚αž€αŸ†αž αž»αžŸαŸ” αžαŸ’αž‰αž»αŸ†αžŸαž„αŸ’αžƒαžΉαž˜αžαžΆαžœαžΆαž“αžΉαž„αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž•αž„αžŠαŸ‚αžšαŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹