ນີ້ແມ່ນຝູງຄໍາສັ່ງທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
flock - ຈັດການ locks ຈາກ shell scripts
ສະຫຼຸບສັງລວມ
flock [ທາງເລືອກ] ເອກະສານ|ລະບົບ ຄໍາສັ່ງ [ກະທູ້ທີ່]
flock [ທາງເລືອກ] ເອກະສານ|ລະບົບ -c ຄໍາສັ່ງ
flock [ທາງເລືອກ] ຈໍານວນ
ລາຍລະອຽດ
ຜົນປະໂຫຍດນີ້ຄຸ້ມຄອງ flock(2) locks ຈາກພາຍໃນ shell scripts ຫຼືຈາກເສັ້ນຄໍາສັ່ງ.
ຮູບແບບທໍາອິດແລະທີສອງຂອງຂ້າງເທິງນີ້ຫໍ່ lock ປະມານການປະຕິບັດຂອງ a ຄໍາສັ່ງ,
ໃນລັກສະນະຄ້າຍຄືກັນກັບ su(1) ຫຼື grp ໃnew່(1). ພວກເຂົາເຈົ້າລັອກທີ່ລະບຸໄວ້ ເອກະສານ or ລະບົບ, ທີ່
ຖືກສ້າງຂື້ນ (ສົມມຸດວ່າການອະນຸຍາດທີ່ເຫມາະສົມ) ຖ້າມັນບໍ່ມີຢູ່ແລ້ວ. ໂດຍຄ່າເລີ່ມຕົ້ນ,
ຖ້າຫາກວ່າ lock ບໍ່ສາມາດໄດ້ຮັບທັນທີ, flock ລໍຖ້າຈົນກ່ວາລັອກສາມາດໃຊ້ໄດ້.
ແບບຟອມທີສາມໃຊ້ໄຟລ໌ເປີດໂດຍຕົວອະທິບາຍໄຟລ໌ຂອງມັນ ຈໍານວນ. ເບິ່ງຕົວຢ່າງຂ້າງລຸ່ມນີ້
ສໍາລັບວິທີການທີ່ສາມາດນໍາໃຊ້ໄດ້.
OPTIONS
-c, -- ຄໍາສັ່ງ ຄໍາສັ່ງ
ຜ່ານອັນດຽວ ຄໍາສັ່ງ, ໂດຍບໍ່ມີການໂຕ້ຖຽງ, ກັບ shell ກັບ -c.
-E, --conflict-exit-code ຈໍານວນ
ລະຫັດອອກໃຊ້ໃນເວລາທີ່ -n ທາງເລືອກແມ່ນການນໍາໃຊ້, ແລະການລັອກທີ່ຂັດແຍ່ງກັນມີຢູ່,
ຫຼື -w ທາງເລືອກແມ່ນການນໍາໃຊ້, ແລະການຫມົດເວລາແມ່ນໄປເຖິງ. ຄ່າເລີ່ມຕົ້ນແມ່ນ 1.
-e, -x, --ສະເພາະ
ໄດ້ຮັບ lock ສະເພາະ, ບາງຄັ້ງເອີ້ນວ່າ lock ຂຽນ. ນີ້ແມ່ນຄ່າເລີ່ມຕົ້ນ.
-n, --nb, --nonblock
ລົ້ມເຫລວແທນທີ່ຈະລໍຖ້າຖ້າ lock ບໍ່ສາມາດໄດ້ຮັບທັນທີ. ເບິ່ງ -E
ທາງເລືອກສໍາລັບລະຫັດອອກທີ່ໃຊ້.
-o, -- ປິດ
ປິດຕົວອະທິບາຍໄຟລ໌ທີ່ລັອກໄວ້ກ່ອນທີ່ຈະດໍາເນີນການ ຄໍາສັ່ງ. ນີ້
ເປັນປະໂຫຍດຖ້າຫາກວ່າ ຄໍາສັ່ງ spawns ຂະບວນການເດັກນ້ອຍທີ່ບໍ່ຄວນຈະໄດ້ຮັບການຖື lock ໄດ້.
-s, --ແບ່ງປັນ
ໄດ້ຮັບ lock ທີ່ໃຊ້ຮ່ວມກັນ, ບາງຄັ້ງເອີ້ນວ່າ lock ອ່ານ.
-u, --ປົດລັອກ
ວາງລັອກ. ນີ້ປົກກະຕິແລ້ວບໍ່ຈໍາເປັນ, ເນື່ອງຈາກວ່າ lock ໄດ້ຖືກຫຼຸດລົງອັດຕະໂນມັດ
ເມື່ອໄຟລ໌ຖືກປິດ. ຢ່າງໃດກໍຕາມ, ມັນອາດຈະຕ້ອງການໃນກໍລະນີພິເສດ, ສໍາລັບການຍົກຕົວຢ່າງ
ຖ້າຫາກວ່າກຸ່ມຄໍາສັ່ງທີ່ປິດລ້ອມອາດຈະໄດ້ forked ຂະບວນການພື້ນຖານທີ່ບໍ່ຄວນ
ຖື lock ໄດ້.
-w, --ລໍຖ້າ, --ຫມົດເວລາ ວິນາທີ
ລົ້ມເຫລວຖ້າຫາກວ່າ lock ບໍ່ສາມາດໄດ້ຮັບພາຍໃນ ວິນາທີ. ຄ່າເສດສ່ວນທົດສະນິຍົມແມ່ນ
ອະນຸຍາດ. ເບິ່ງ -E ທາງເລືອກສໍາລັບລະຫັດອອກທີ່ໃຊ້. ຈໍານວນສູນຂອງ ວິນາທີ is
ແປວ່າ --nonblock.
-- verbose
ລາຍງານວ່າມັນໃຊ້ເວລາດົນປານໃດຈຶ່ງຈະໄດ້ມາລັອກ, ຫຼືເປັນຫຍັງຈຶ່ງບໍ່ສາມາດໄດ້ຮັບລັອກ.
-V, - ການປ່ຽນແປງ
ສະແດງຂໍ້ມູນສະບັບແລະອອກ.
-h, - ຊ່ວຍ
ສະແດງຂໍ້ຄວາມຊ່ວຍເຫຼືອ ແລະອອກ.
ຕົວຢ່າງ
shell1> ຝູງ / tmp -c cat
shell2> flock -w .007 / tmp -c ສຽງສະທ້ອນ; /bin/echo $?
ຕັ້ງການລັອກສະເພາະໃສ່ໄດເລກະທໍລີ / tmp ແລະຄໍາສັ່ງທີສອງຈະລົ້ມເຫລວ.
shell1> flock -s / tmp -c cat
shell2> flock -s -w .007 / tmp -c ສຽງສະທ້ອນ; /bin/echo $?
ຕັ້ງການລັອກທີ່ແບ່ງປັນເປັນໄດເລກະທໍລີ / tmp ແລະຄໍາສັ່ງທີສອງຈະບໍ່ລົ້ມເຫລວ. ແຈ້ງການ
ຄວາມພະຍາຍາມທີ່ຈະໄດ້ຮັບການລັອກສະເພາະດ້ວຍຄໍາສັ່ງທີສອງຈະລົ້ມເຫລວ.
shell> flock -x local-lock-file echo 'abc'
ຈັບລັອກສະເພາະ "local-lock-file" ກ່ອນທີ່ຈະແລ່ນສຽງສະທ້ອນດ້ວຍ 'ab c'.
(
ຝູງ -n 9 || ທາງອອກ 1
# ... ຄໍາສັ່ງປະຕິບັດພາຍໃຕ້ການລັອກ ...
) 9>/var/lock/mylockfile
ແບບຟອມແມ່ນສະດວກພາຍໃນສະຄິບແກະ. ໂໝດໃຊ້ເພື່ອເປີດໄຟລ໌
ບໍ່ສໍາຄັນ flock; ການນໍາໃຊ້ > or >> ອະນຸຍາດໃຫ້ສ້າງ lockfile ຖ້າມັນເຮັດ
ບໍ່ມີຢູ່ແລ້ວ, ແນວໃດກໍ່ຕາມ, ການອະນຸຍາດຂຽນແມ່ນຕ້ອງການ. ການນໍາໃຊ້ < ຮຽກຮ້ອງໃຫ້ມີວ່າ
ໄຟລ໌ດັ່ງກ່າວມີຢູ່ແລ້ວແຕ່ຕ້ອງການສິດການອ່ານເທົ່ານັ້ນ.
[ "${FLOCKER}" != "$0" ] && exec env FLOCKER="$0" flock -en "$0" "$0" "$@" || :
ນີ້ແມ່ນລະຫັດ boilerplate ທີ່ເປັນປະໂຫຍດສໍາລັບ scripts shell. ເອົາມັນຢູ່ເທິງສຸດຂອງແກະ
ສະຄຣິບທີ່ທ່ານຕ້ອງການລັອກ ແລະມັນຈະລັອກຕົວມັນເອງໂດຍອັດຕະໂນມັດໃນຄັ້ງທຳອິດ. ຖ້າ
env var $FLOCKER ບໍ່ໄດ້ຕັ້ງເປັນ Shell script ທີ່ກໍາລັງດໍາເນີນການ, ຫຼັງຈາກນັ້ນດໍາເນີນການ
flock ແລະ grab lock ບໍ່ໄດ້ສະກັດສະເພາະ (ການນໍາໃຊ້ຕົວມັນເອງເປັນ lock ໄດ້
file) ກ່ອນທີ່ຈະປະຕິບັດຕົວຂອງມັນເອງຄືນໃຫມ່ດ້ວຍການໂຕ້ຖຽງທີ່ຖືກຕ້ອງ. ມັນຍັງກໍານົດ FLOCKER
env var ໄປຫາຄ່າທີ່ຖືກຕ້ອງເພື່ອບໍ່ໃຫ້ມັນແລ່ນອີກ.
ອອກ STATUS
ຄໍາສັ່ງໃຊ້ sysexits.h ກັບຄືນຄ່າສໍາລັບທຸກສິ່ງທຸກຢ່າງ, ຍົກເວັ້ນໃນເວລາທີ່ໃຊ້ອັນໃດອັນຫນຶ່ງ
ທາງເລືອກໃນການ -n or -w ເຊິ່ງລາຍງານຄວາມລົ້ມເຫລວທີ່ຈະໄດ້ມາ lock ດ້ວຍມູນຄ່າກັບຄືນມາໂດຍ
ໄດ້ -E ທາງເລືອກ, ຫຼື 1 ໂດຍຄ່າເລີ່ມຕົ້ນ.
ເມື່ອ ນຳ ໃຊ້ ຄໍາສັ່ງ variant, ແລະການປະຕິບັດເດັກໄດ້ເຮັດວຽກ, ຫຼັງຈາກນັ້ນສະຖານະການອອກແມ່ນ
ຄໍາສັ່ງຂອງເດັກນ້ອຍ.
ໃຊ້ຝູງອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net