วิธีเรียกใช้คำสั่งและสคริปต์ Linux โดยอัตโนมัติในการรีบูตระบบ

How Run Linux Commands



การเรียกใช้แอปและสคริปต์โดยอัตโนมัติเมื่อเริ่มต้นระบบอาจเป็นประโยชน์สำหรับการทำงานและเหตุการณ์การบูตทั่วไปโดยอัตโนมัติ บทความนี้จะอธิบายวิธีการบางอย่างที่สามารถใช้ในการเปิดแอปและสคริปต์ในการรีบูตเครื่องใหม่หรือการเข้าสู่ระบบใหม่

แอปพลิเคชั่นเริ่มต้น

อูบุนตูและการแจกแจงบน GNOME อื่น ๆ มาพร้อมกับแอพพลิเคชั่นที่เรียกว่า Startup Applications สามารถใช้สำหรับจัดการแอพและสคริปต์ที่ทำงานบนระบบใหม่หรือเข้าสู่ระบบใหม่







เปิดแอป Startup Applications จากตัวเรียกใช้งานแอปพลิเคชันและคลิกที่ปุ่ม Add เพื่อเพิ่มรายการใหม่





กรอกข้อมูลในช่อง Name และ Command ตามความต้องการของคุณ จากนั้นคลิกที่ปุ่ม Add เพื่อสร้างรายการใหม่ให้เสร็จสิ้น รายการที่สร้างในภาพหน้าจอด้านล่างจะส่งการแจ้งเตือน Make a Backup เป็นการแจ้งเตือนระบบทุกครั้งที่รีบูต / เข้าสู่ระบบ คุณสามารถแทนที่ด้วยคำสั่งของคุณเองหรือด้วยเส้นทางแบบเต็มของสคริปต์ทุบตีของคุณ คุณยังสามารถใช้คำสั่งระบบหรือไฟล์เรียกทำงานที่มีอยู่ซึ่งปกติจะอยู่ในโฟลเดอร์ bin ต่างๆ ทั่วทั้งระบบไฟล์





ตามที่ระบุไว้ข้างต้น การแจ้งเตือนการสำรองข้อมูลจะแสดงทุกครั้งที่รีบูต



Systemd

Systemd เป็นภูตและตัวจัดการบริการที่มียูทิลิตี้ต่างๆ เพื่อจัดการกระบวนการของระบบและส่วนประกอบระบบปฏิบัติการ ในรูปแบบที่เรียบง่าย โดยทั่วไปจะใช้เพื่อเริ่มต้นและสิ้นสุดบริการในรอบการบูตใหม่

Systemd สามารถใช้เพื่อเปิดแอปโดยอัตโนมัติหรือเรียกใช้สคริปต์ในการบูตเครื่องใหม่ ในการสร้างการแจ้งเตือนการสำรองข้อมูลแบบเดียวกันที่อธิบายข้างต้น ก่อนอื่นคุณต้องสร้างโฟลเดอร์และไฟล์ที่จำเป็นโดยเรียกใช้คำสั่งด้านล่าง:

$mkdir -NS~/.config/ระบบ/ผู้ใช้
$นาโน~/.config/ระบบ/ผู้ใช้/backup_reminder.service

แทนที่ nano ด้วยคำสั่งของโปรแกรมแก้ไขข้อความที่คุณชื่นชอบ แทนที่ backup_reminder ด้วยชื่ออื่นที่คุณต้องการ

วางรหัสด้านล่างในไฟล์ backup_reminder.service ที่สร้างโดยใช้คำสั่งด้านบน

[หน่วย]
Description=ส่งตัวเตือนการสำรองข้อมูลทุกครั้งที่รีบูต
PartOf=graphical-session.target

[บริการ]
ExecStart=bash -c 'sleep 10; แจ้ง-ส่ง 'ทำการสำรองข้อมูล''
Type=oneshot

[ติดตั้ง]
WantedBy=graphical-session.target

รหัสด้านบนค่อนข้างตรงไปตรงมา จะส่งการแจ้งเตือน Make a Backup 10 วินาทีหลังจากโหลดเซสชันกราฟิก (ทุกครั้งที่รีบูตหรือเข้าสู่ระบบ)

เรียกใช้คำสั่งด้านล่างเพื่อเปิดใช้งานบริการเพื่อให้สามารถทำงานโดยอัตโนมัติทุกครั้งที่รีบูต

$chmod 644~/.config/ระบบ/ผู้ใช้/backup_reminder.service
$ systemctl--ผู้ใช้ เปิดใช้งานbackup_reminder.service
$ systemctl--ผู้ใช้daemon-reload
$ รีบูต

นี่เป็นเพียงตัวอย่างง่ายๆ ของการรันคำสั่งพื้นฐานในการบู๊ตโดยใช้ systemd คุณยังสามารถสร้างบริการขั้นสูงที่มีหลายเงื่อนไขและหลายคำสั่ง สำหรับข้อมูลเพิ่มเติม โปรดดูที่หน้า man systemd โดยรันคำสั่งด้านล่าง:

$ชายระบบ

โปรดทราบว่าตัวอย่างนี้อธิบายการสร้างบริการใหม่ที่ไม่ต้องการการเข้าถึงรูท และเหมาะสำหรับแอปที่เริ่มต้นอัตโนมัติที่ไม่ต้องการการอนุญาตรูท หากคุณต้องการเริ่มสคริปต์อัตโนมัติที่ต้องการการเข้าถึงรูท คุณต้องสร้างบริการ systemd ใหม่ในไดเร็กทอรี /etc/systemd/system แทนโฟลเดอร์ ~/.config/systemd/user และละเว้น –user switch ในคำสั่งที่กล่าวถึงข้างต้น

งานครอน

Cron เป็นเครื่องมือที่สามารถรันงานที่กำหนดเวลาไว้เป็นระยะตามเงื่อนไขที่ผู้ใช้กำหนด งานตามกำหนดการเหล่านี้ถูกสร้างขึ้นใน Crontab ในรูปแบบที่กำหนดไว้ล่วงหน้า พูดง่ายๆ ก็คือ Crontab บอก Cron ว่างานใดที่ควรทำงาน ณ เวลาใด

เช่นเดียวกับ systemd งาน crontab สามารถใช้เพื่อเปิดแอปและเรียกใช้สคริปต์โดยอัตโนมัติเมื่อบูต ในการเพิ่มงาน cron ใหม่ ให้รันคำสั่งด้านล่าง:

$crontab-และ

เพิ่มบรรทัดต่อไปนี้ที่ส่วนท้ายของไฟล์ข้อความ (เปิดใช้งานเทอร์มินัล GNOME โดยอัตโนมัติทุกครั้งที่รีบูต):

SHELL=/bin/bash
@reboot สลีป 30 && DISPLAY=:0 gnome-terminal

คุณสามารถใช้คำสั่งของคุณเองหรือระบุพาธแบบเต็มไปยังเชลล์สคริปต์ได้

โปรดทราบว่าไม่เหมือนกับ systemd ตรงที่ cron ตรวจไม่พบว่ามีการโหลดเซสชันแบบกราฟิกหรือไม่ คุณต้องระบุระยะเวลารอโดยประมาณจนกว่าเซิร์ฟเวอร์ X จะโหลดและตัวระบุการแสดงผล คุณสามารถทราบเกี่ยวกับ display ID ของคุณได้โดยการรันคำสั่งด้านล่าง:

$โยนออก $DISPLAY

ความล่าช้าก่อนดำเนินการคำสั่งหรือสคริปต์ขึ้นอยู่กับการกำหนดค่าระบบและเวลาบูต

Rc.local

อีกวิธีหนึ่งในการเรียกใช้สคริปต์และคำสั่งเมื่อเริ่มต้นคือการใช้ไฟล์ rc.local โปรดทราบว่าในการทดสอบของฉัน ฉันไม่สามารถเลื่อนการเรียกใช้สคริปต์ได้จนกว่าเซสชันกราฟิกจะทำงานจริง การเพิ่มการหน่วงเวลาพักเครื่องจะทำให้เกิดความล่าช้าในการแสดงหน้าจอเข้าสู่ระบบเอง ด้วยเหตุนี้ ฉันจึงไม่ประสบความสำเร็จในการเรียกใช้แอปกราฟิกเมื่อเริ่มต้นระบบโดยใช้ไฟล์ rc.local การแก้ไข rc.local ยังต้องมีการเข้าถึงรูท ซึ่งแตกต่างจากตัวอย่างอื่นๆ ทั้งหมดที่อธิบายไว้ข้างต้น

ในการเพิ่มคำสั่ง / สคริปต์ลงในไฟล์ rc.local ให้รันคำสั่งด้านล่าง (สร้างไฟล์ rc.local ใหม่หากไม่มีอยู่):

$sudo นาโน /ฯลฯ/rc.local

เพิ่มคำสั่งของคุณระหว่าง #! /bin/bash และออก 0 บรรทัดดังแสดงด้านล่าง:

#! /bin/bash
เส้นทาง/to/my_script.sh
ทางออก 0

ทำให้ไฟล์ rc.local สามารถเรียกใช้งานได้โดยรันคำสั่งด้านล่าง:

$sudo chmod+ x/ฯลฯ/rc.local

เพียงรีบูตเพื่อให้สคริปต์เริ่มต้นมีผล

บทสรุป

นี่เป็นวิธีการบางส่วนที่สามารถใช้เพื่อเรียกใช้สคริปต์และแอปโดยอัตโนมัติเมื่อเริ่มต้นระบบ หากคุณต้องการเรียกใช้สคริปต์ที่ไม่ต้องการการเข้าถึงรูท ฉันขอแนะนำให้ใช้แอป Startup Applications GUI หากคุณต้องการเรียกใช้แอพและสคริปต์ด้วยการเข้าถึงรูท เราขอแนะนำให้คุณสร้างบริการ systemd ระดับระบบ

เกี่ยวกับผู้เขียน

Nitesh Kumar

ฉันเป็นนักพัฒนาซอฟต์แวร์อิสระและนักเขียนเนื้อหาที่รัก Linux, ซอฟต์แวร์โอเพ่นซอร์ส และชุมชนซอฟต์แวร์ฟรี

ดูกระทู้ทั้งหมด