ผมมักหลงใหลในสิ่งที่เกิดขึ้นเบื้องหลังเมื่อบูตระบบ Linux และล็อกอิน โดยการกดปุ่มเปิดเครื่องบน Bare Metal หรือเริ่มต้น Virtual Machine จะทำให้เกิดลำดับเหตุการณ์ที่นำไปสู่ระบบที่ทำงานได้เต็มที่ – บางครั้งในเวลาน้อยกว่าหนึ่งนาที สิ่งเดียวกันก็เกิดขึ้นเมื่อคุณล็อกออฟและ/หรือปิดระบบ
สิ่งที่ทำให้เรื่องนี้น่าสนใจและสนุกกว่านั้นคือ คุณสามารถสั่งให้ระบบปฏิบัติการดำเนินการบางอย่างเมื่อบูตระบบ และเมื่อคุณล็อกอินหรือล็อกเอาท์ได้
ในบทความที่ไม่ขึ้นอยู่กับ Distro ใดๆ นี้ เราจะพูดถึงวิธีการดั้งเดิมสำหรับการบรรลุเป้าหมายเหล่านี้ใน Linux
หมายเหตุ: เราจะสมมติว่าใช้ Bash เป็น Shell หลักสำหรับเหตุการณ์ล็อกอินและล็อกเอาท์ หากคุณใช้ Shell อื่น บางวิธีอาจทำงานหรือไม่ทำงาน หากไม่แน่ใจ โปรดอ่านเอกสารของ Shell ที่คุณใช้
การรันสคริปต์ Linux ระหว่างการรีบูทหรือเริ่มต้นระบบ
มีสองวิธีดั้งเดิมในการรันคำสั่งหรือสคริปต์ระหว่างเริ่มต้นระบบ:
วิธีที่ 1 – ใช้ Cron Job
นอกจากรูปแบบปกติ (นาที/ชั่วโมง/วันของเดือน/เดือน/วันของสัปดาห์) ที่ใช้กันอย่างกว้างขวางในการกำหนดตารางเวลา Cron Scheduler ยังรองรับการใช้ @reboot ด้วย คำสั่งนี้ตามด้วย Absolute Path ไปยังสคริปต์ จะทำให้สคริปต์ทำงานเมื่อเครื่องบูต
อย่างไรก็ตาม มีข้อแตกต่างสองประการสำหรับวิธีนี้:
- ก) Cron Daemon ต้องกำลังทำงานอยู่ (ซึ่งเป็นกรณีปกติภายใต้สภาพแวดล้อมปกติ)
- ข) สคริปต์หรือไฟล์ Crontab ต้องรวม Environment Variables (ถ้ามี) ที่จะต้องการ (ดูรายละเอียดเพิ่มเติมที่ StackOverflow thread นี้)
วิธีที่ 2 – ใช้ /etc/rc.d/rc.local
วิธีนี้ใช้ได้แม้กับ Distro ที่ใช้ systemd ในการทำให้วิธีนี้ทำงาน คุณต้องให้สิทธิ์ Execute แก่ /etc/rc.d/rc.local ดังนี้:
# chmod +x /etc/rc.d/rc.local
และเพิ่มสคริปต์ของคุณที่ด้านล่างของไฟล์
ภาพต่อไปนี้แสดงวิธีการรันสคริปต์ตัวอย่างสองตัว (/home/gacanepa/script1.sh และ /home/gacanepa/script2.sh) โดยใช้ Cron Job และ rc.local ตามลำดับ พร้อมกับผลลัพธ์ของแต่ละวิธี
script1.sh:
#!/bin/bash DATE=$(date +'%F %H:%M:%S') DIR=/home/gacanepa echo "Current date and time: $DATE" > $DIR/file1.txt
script2.sh:
#!/bin/bash SITE="Tecmint.com" DIR=/home/gacanepa echo "$SITE rocks... add us to your bookmarks." > $DIR/file2.txt
จำไว้ว่า ทั้งสองสคริปต์ต้องได้รับสิทธิ์ Execute ก่อนหน้านี้:
$ chmod +x /home/gacanepa/script1.sh $ chmod +x /home/gacanepa/script2.sh
การรันสคริปต์ Linux เมื่อล็อกอินและล็อกเอาท์
เพื่อรันสคริปต์เมื่อล็อกอินหรือล็อกเอาท์ ให้ใช้ ~.bash_profile และ ~.bash_logout ตามลำดับ ส่วนใหญ่คุณอาจต้องสร้างไฟล์หลัง者手动 只要在每个文件底部添加一行调用脚本的命令,就像之前一样,就准备好了。
สรุป
ในบทความนี้เราได้อธิบายวิธีการรันสคริปต์เมื่อรีบูท ล็อกอิน และล็อกเอาท์ หากคุณสามารถคิดถึงวิธีการอื่นๆ ที่เราสามารถรวมไว้ที่นี่ได้ โปรดใช้ฟอร์มความคิดเห็นด้านล่างเพื่อแจ้งให้เราทราบ เราคาดหวังที่จะได้ยินจากคุณ!
พัฒนาทักษะ Linux ของคุณให้ก้าวหน้าขึ้น
สมาชิก Root ได้รับการเข้าถึงเต็มรูปแบบทุกหลักสูตร โปรแกรมเตรียมสอบรับรอง และไลบรารีเนื้อหา Linux แบบ Hands-on ที่เพิ่มขึ้นเรื่อยๆ — มีหลักสูตรใหม่เพิ่มทุกเดือน
สิ่งที่คุณจะได้รับ:
- เข้าถึงบทความพรีเมียมทั้งหมดโดยไม่มีโฆษณา
- เข้าถึงหลักสูตรทั้งหมด: เรียนรู้ Linux, AI สำหรับ Linux, Bash Scripting, Ubuntu Handbook, Golang และอื่นๆ
- เข้าถึงการรับรอง Linux (RHCSA, RHCE, LFCS และ LFCA)
- เข้าถึงหลักสูตรใหม่ทันทีที่เปิดตัว
- รับจดหมายข่าวรายสัปดาห์
- ความช่วยเหลือลำดับแรกในความคิดเห็น
- ชุมชน Telegram แบบส่วนตัว
- เชื่อมต่อกับชุมชน Linux
Gabriel Cánepa เป็น GNU/Linux Sysadmin และ Web Developer จาก Villa Mercedes, San Luis, Argentina เขาทำงานให้บริษัทผลิตภัณฑ์ผู้บริโภคชั้นนำโลก และเพลิดเพลินในการใช้เครื่องมือ FOSS เพื่อเพิ่มประสิทธิภาพผลิตภาพในทุกด้านของงานประจำวัน
บทช่วยสอนแต่ละบทที่ TecMint สร้างโดยทีมผู้ดูแลระบบ Linux ที่มีประสบการณ์ เพื่อให้ตรงตาม มาตรฐานคุณภาพสูงของเรา