ນີ້ແມ່ນຄໍາສັ່ງ kdb-elektrify-getenv ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນສະຖານີເຮັດວຽກອອນໄລນ໌ຟຣີຫຼາຍອັນຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
kdb-elektrify-getenv - ໄຟຟ້າສະພາບແວດລ້ອມຂອງຄໍາຮ້ອງສະຫມັກ
ສະຫຼຸບສັງລວມ
kdb ໄຟຟ້າ-getenv ຄໍາຮ້ອງສະຫມັກ ທາງເລືອກໃນການ
ລາຍລະອຽດ
ໃນເວລາທີ່ຄໍາຮ້ອງສະຫມັກແມ່ນ elektrified ໂດຍໃຊ້ libelektragetenv, ມັນບໍ່ພຽງແຕ່ຮ້ອງຂໍ
ກ່ຽວກັບ, ແຕ່ຍັງ Elektra ສໍາລັບທຸກໆ getenv(3) ແລະ secure_getenv(3) ຫ້ອງສະຫມຸດໂທ.
ຈຸດປະສົງຕົ້ນຕໍຂອງມັນແມ່ນເພື່ອ:
· ມີວິທີການມາດຕະຖານເພື່ອດັດແປງສະພາບແວດລ້ອມ
· ເຮັດໃຫ້ relogin (ຫຼືແມ້ກະທັ້ງ restart!) ຂອງຄໍາຮ້ອງສະຫມັກທີ່ບໍ່ຈໍາເປັນ
· ອະນຸຍາດໃຫ້ໂຄງສ້າງລໍາດັບສໍາລັບສິ່ງແວດລ້ອມ
·ອະນຸຍາດໃຫ້ການຕັ້ງຄ່າພຽງແຕ່ນໍາໃຊ້ສໍາລັບຄໍາຮ້ອງສະຫມັກສ່ວນບຸກຄົນຫຼືພຽງແຕ່ໃນສະພາບການພິເສດ
· ຍັງຄົງຮັກສາຄວາມໄດ້ປຽບ (ສືບທອດສິ່ງແວດລ້ອມກັບຂະບວນການຍ່ອຍ)
·ມີຢູ່ໃນ, cron ແລະສະຄິບທີ່ຄ້າຍຄືກັນ.
ມັນໄດ້ຖືກປະຕິບັດໂດຍໃຊ້ເຕັກນິກ LD_PRELOAD, ເບິ່ງ ການນໍາໃຊ້ ຂ້າງລຸ່ມນີ້ສໍາລັບການເປີດໃຊ້ທົ່ວໂລກ.
ຊອກຫາ
ຈຸດປະສົງຕົ້ນຕໍຂອງວິທີການນີ້ແມ່ນເພື່ອໃຫ້ສຸດທ້າຍມີວິທີການກໍານົດແລະໄດ້ຮັບ
ຕົວແປສະພາບແວດລ້ອມ. ຕົວແປຂອງ Elektra ຈະຖືກນໍາໃຊ້ໃນທັນທີສໍາລັບທຸກໆອັນໃຫມ່
ໄດ້ເລີ່ມຕົ້ນຄໍາຮ້ອງສະຫມັກ (ບໍ່ຈໍາເປັນຕ້ອງ relogin).
ເພື່ອເຮັດແນວນັ້ນ, getenv(3) ຈະຊອກຫາແຫຼ່ງຫຼາຍອັນຖັດຈາກການຄົ້ນຫາໃນສະພາບແວດລ້ອມ
(ສະພາບແວດລ້ອມ). ໃນຖານະເປັນຕົວຢ່າງແລ່ນຈະໃຊ້ getenv("ເຮືອນ") -> /path/to/home:
1. ຕົວກໍານົດການເສັ້ນຄໍາສັ່ງທີ່ໃຫ້ໄວ້ຈະເປັນທີ່ຕ້ອງການສະເຫມີ (ເບິ່ງ OPTIONS ດ້ານລຸ່ມ).
ຕົວຢ່າງ kdb ໄຟຟ້າ-getenv --elektra:HOME=/ເສັ້ນທາງ/ໄປ/ເຮືອນ
2. ຈາກນັ້ນ /env/override/ ຈະຖືກເບິ່ງຂຶ້ນ, ບ່ອນທີ່ ທີ່ສໍາຄັນ ແມ່ນຕົວກໍານົດການ getenvທີ່ຢູ່ ຖ້າຫາກວ່າ
ພົບເຫັນ, ລະຫັດຈະຖືກສົ່ງຄືນ, ຖ້າມັນເປັນກະແຈ null, getenv ຈະກັບຄືນ NULL.
ຕົວຢ່າງ kdb ທີ່ກໍານົດໄວ້ user/env/override/HOME /path/to/home
3. ຫຼັງຈາກນັ້ນ, ສະພາບແວດລ້ອມຈະຖືກຮ້ອງຂໍ.
ຕົວຢ່າງ HOME=/ເສັ້ນທາງ/ໄປ/ເຮືອນ kdb ໄຟຟ້າ-getenv
4. ຈາກນັ້ນ /env/fallback/ ຈະຖືກເບິ່ງຂຶ້ນ. ຖ້າພົບເຫັນ, ລະຫັດຈະຖືກສົ່ງຄືນ, ຖ້າມັນ
ເປັນກະແຈ null, getenv ຈະກັບຄືນ NULL.
ຕົວຢ່າງ kdb ທີ່ກໍານົດໄວ້ user/env/fallback/HOME /path/to/home
OPTIONS
ເມື່ອໃດ ໄຟຟ້າ-getenv ມີການເຄື່ອນໄຫວ, ທຸກໆຄໍາຮ້ອງສະຫມັກຍັງຍອມຮັບ Elektra's getenv
ທາງເລືອກ. Interleaving Elektra's ແລະທາງເລືອກຂອງຄໍາຮ້ອງສະຫມັກແມ່ນອະນຸຍາດໃຫ້. Elektra ຈະ
parse ທາງເລືອກຂອງຕົນ (ເລີ່ມຕົ້ນດ້ວຍ --elektra) ທໍາອິດແລະປະຖິ້ມເຂົາເຈົ້າກ່ອນທີ່ອື່ນ
ຄໍາຮ້ອງສະຫມັກແມ່ນເລີ່ມຕົ້ນ. ດັ່ງນັ້ນຄໍາຮ້ອງສະຫມັກຈະບໍ່ເຫັນວ່າພວກມັນມີຢູ່,
ຕົວຢ່າງ: ໃຫ້ kdb ໄຟຟ້າ-getenv -V --elektra-debug -L ຄໍາຮ້ອງສະຫມັກຈະ
ຖືກເອີ້ນດ້ວຍ -V -L.
ພາຍໃນ ທາງເລືອກໃນການ
--elektra-ຊ່ວຍ
ຜົນໄດ້ຮັບການຊ່ວຍເຫຼືອນີ້.
--elektra-ສະບັບ
ໃຫ້ຂໍ້ມູນສະບັບ.
--elektra-debug=ໄຟລ໌, ELEKTRA_DEBUG or /env/option/debug
ຕິດຕາມທັງໝົດ getenv(3) ໂທໄປຫາໄຟລ໌. stderr ຖ້າບໍ່ມີໄຟລ໌ຖືກມອບໃຫ້, e.g kdb ທີ່ກໍານົດໄວ້
user/env/option/debug "". ຈົ່ງຈື່ໄວ້ວ່າຄ່າ null (ບໍ່ມີການໂຕ້ຖຽງກັນ), ຈະປິດການໃຊ້ງານ
ແກ້ບັນຫາຂໍ້ຄວາມ. ເບິ່ງຕົວຢ່າງຂ້າງລຸ່ມນີ້.
--elektra-clearenv, ELEKTRA_CLEARENV or /env/option/clearenv
ໂທ clearenv(3) ກ່ອນທີ່ຈະເຂົ້າຫຼັກ. ນີ້ແມ່ນຄຸນສົມບັດຄວາມປອດໄພທີ່ແນະນໍາ.
Elektra ຕົວຂອງມັນເອງ, ຖ້າ configured ແບບນັ້ນ, ຍັງຈະສາມາດນໍາໃຊ້ສະພາບແວດລ້ອມໄດ້.
--elektra-reload-timeout=time_in_ms, ELEKTRA_RELOAD_TIMEOUT or /env/option/reload_timeout
ເປີດໃຊ້ຄຸນສົມບັດທີ່ອີງໃສ່ການໝົດເວລາເມື່ອເວລາຖືກມອບເປັນ ms (ແລະບໍ່ແມ່ນ 0).
ທາງເລືອກພາຍໃນແມ່ນມີຢູ່ໃນສາມຕົວແປທີ່ແຕກຕ່າງກັນ:
1. ເປັນຕົວກໍານົດການຄໍາສັ່ງ: --ໄຟຟ້າ-, ເຊິ່ງແມ່ນ ບໍ່ ຜ່ານ exec(3)
ໂທ.
2. ເປັນຕົວແປສະພາບແວດລ້ອມ: ELEKTRA_. ເຊິ່ງອາດຈະຜ່ານ exec(3)
ໂທ, ແຕ່ຖືກໂຍກຍ້າຍອອກໂດຍ clearenv(3) ໂທ.
3. ເປັນລາຍການ Elektra KDB: /env/option/, ຊຶ່ງເປັນວິທີການທີ່ຈະບັນລຸທາງເລືອກທີ່ຈະ
ຖືກເປີດໃຊ້ສໍາລັບທຸກໆແອັບພລິເຄຊັນ.
ຕົວຢ່າງ kdb ທີ່ກໍານົດໄວ້ user/env/option/clearenv "" ເພື່ອອະນາໄມສະພາບແວດລ້ອມສໍາລັບທຸກຄໍາຮ້ອງສະຫມັກ
ເລີ່ມຕົ້ນໂດຍຜູ້ໃຊ້ນັ້ນ (ສັງເກດວ່າຢ່າງຫນ້ອຍ PATH ຄວນຈະໄດ້ຮັບການນໍາໃຊ້ kdb ທີ່ກໍານົດໄວ້
user/env/fallback/PATH "/ ຖັງ:/ usr / ຖັງ" ຫຼັງຈາກນັ້ນ).
ໝາຍເຫດ, ປຸ່ມ null ນັ້ນເທົ່າກັບຕົວເລືອກທີ່ບໍ່ໄດ້ຕັ້ງ. ຕົວຢ່າງ kdb ທີ່ກໍານົດໄວ້
system/env/option/debug "/tmp/elektra.log" ແລະ kdb ທີ່ກໍານົດໄວ້ user/env/option/debug ຈະ
ເປີດໃຊ້ການບັນທຶກສໍາລັບລະບົບ, ຍົກເວັ້ນຜູ້ໃຊ້ປະຈຸບັນ.
ສະພາບຄວາມເປັນຈິງ ທາງເລືອກໃນການ
--ໄຟຟ້າ% %= or /env/layer/
ເພີ່ມຂໍ້ມູນບໍລິບົດ (=layer) % % ດ້ວຍຄຸນຄ່າຂອງມັນ . ໃຫ້ສັງເກດວ່າ
%yam% ຖືກກໍານົດໄວ້ລ່ວງໜ້າດ້ວຍ argv[0] ແລະ %ຊື່ພື້ນຖານ% ກັບ ຊື່ພື້ນຖານ(argv[0]).
ຄ່າສາມາດບັນຈຸ / ເພື່ອສ້າງລໍາດັບຊັ້ນ, ຕົວຢ່າງ --elektra%name%=ແອັບ/ໂປຣໄຟລ໌
ທາງເລືອກໃນການ ສໍາລັບການ ຄໍາຮ້ອງສະຫມັກ
--elektra:key=value, /env/override/ or /env/fallback/
ກໍານົດລະຫັດ / ຄ່າທີ່ຕ້ອງການ, ie ທໍາອິດທີ່ພິຈາລະນາຕາມທີ່ໄດ້ອະທິບາຍໄວ້ໃນ
ເບິ່ງ.
ຄີສາມາດບັນຈຸ / ເພື່ອສ້າງລໍາດັບຊັ້ນ, ຕົວຢ່າງ --elektra:my/HOME=/path/to/home.
ການນໍາໃຊ້
ເພື່ອໃຊ້ສະພາບແວດລ້ອມ getenv ຂອງ Elektra ສະເຫມີ, ພຽງແຕ່ເພີ່ມຜົນຜະລິດໃສ່ໄຟລ໌:
kdb elektrify-getenv | ຫາງ -1 | sudo tee -a /etc/ld.so.preload
ນີ້ຍັງສາມາດເຮັດໄດ້ໂດຍໃຊ້ Elektra:
sudo kdb mount /etc/ld.so.preload system/ld/preload line null
sudo kdb ຕັ້ງ "system/ld/preload/new" `kdb elektrify-getenv | ຫາງ -1`
CONTEXT
ເມຕາເດຕາ context ໃນສະເພາະສາມາດຖືກນໍາໃຊ້ເພື່ອອໍານວຍຄວາມສະດວກໃນສະພາບການທີ່ຂຶ້ນກັບ
ຊອກຫາ. ໃນ metavalue ຂອງຕົນການທົດແທນທັງຫມົດຂອງ % % ຈະຖືກທົດແທນໂດຍການໃຫ້
ທາງເລືອກໃນສະພາບການ --ໄຟຟ້າ% %= ແລະ /env/layer/ keys
ຕົວຢ່າງ: ໃຫ້ມີລາຍຊື່ບ້ານທີ່ແຕກຕ່າງກັນສໍາລັບຜູ້ໃຊ້ ແລະແອັບພລິເຄຊັນໃດນຶ່ງ:
kdb ຕັ້ງ user/env/layer/user markus
kdb ຕັ້ງ user/users/markus/konqueror/HOME /home/download
kdb setmeta spec/env/override/HOME context /users/%user%/%name%/HOME
ໃຊ້ kdb-elektrify-getenv ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net