เป็นไปได้ไหมที่จะรันคำสั่งหลังจาก "หยุด" ใน linux desktop?


0

เป็นไปได้หรือไม่ที่จะเรียกใช้คำสั่งหลังจาก "หยุด" ใน linux desktop? ตัวอย่างเช่น:

#=========================================================
#NetworkManage Auto Connect:
chkconfig NetworkManager off
echo "service NetworkManager start" >> /etc/rc.d/rc.local
#=========================================================

ฉันต้องดำเนินการคำสั่งหลังจากที่ผู้จัดการเครือข่ายเชื่อมต่อสำเร็จแล้วและฉันคิดว่าวิธีที่ดีที่สุดในการทำเช่นนี้คือการหยุดชั่วคราวเป็นเวลา 8 วินาที

ฉันจะรันบางสิ่งเช่น:

gedit test.txt

ประมาณ 8 วินาทีหลังจากสั่งคำสั่งแล้ว?

คำตอบ:


2

NetworkManager มีคุณสมบัติในตัว: มันสามารถเรียกใช้สคริปต์สำหรับคุณในเครือข่ายเหตุการณ์ขึ้นและลง

คุณต้องวางสคริปต์ของคุณที่: /etc/NetworkManager/dispatcher.d/

สคริปต์ทุกตัวจะได้รับพารามิเตอร์สองตัวจาก NetworkManager ตัวแรกคือส่วนต่อประสานที่มีเหตุการณ์และตัวที่สองคือเหตุการณ์ (ขึ้นหรือลง)

สคริปต์ตัวอย่าง:

#!/bin/bash

INTERFACE=$1 # The interface which is brought up or down
STATUS=$2 # The new state of the interface

echo interface $INTERFACE went $STATUS

ฉันเปิดคำถามใหม่เกี่ยวกับเรื่องนี้ stackoverflow.com/questions/16848021/…

1

จะsleepสั่งทำในสิ่งที่คุณต้องการ? อย่างนี้:

sleep 4 && echo 'hello there!'

(รอสี่วินาทีจากนั้นพิมพ์ข้อความ)

แก้ไข: หรือเป็นตัวอย่างของคุณ

sleep 8 && gedit test.txt

ทดสอบsleep 8 && gedit test.txtโดยการเพิ่มลงไปด้านล่าง/etc/rc.d/rc.localด้วยเหตุผลบางอย่างมันไม่ได้ดำเนินการเลยหลังจากรีบูตเครื่อง

infact แม้ "gedit test.txt" ไม่ทำงานในไฟล์เริ่มต้นดังนั้นจึงไม่มีอะไรผิดปกติกับคำสั่งบางทีนี่อาจเป็นคำถามอื่น

โอ้ฉันไม่ใช่ผู้เชี่ยวชาญ แต่ฉันคิดว่าคุณต้องมีเทอร์มินัลเปิดอยู่แล้วเพื่อให้สามารถเรียกใช้โปรแกรมแก้ไขได้ คุณสามารถเปิด rc.local แบบนี้ได้ไหม? bbs.archlinux.org/viewtopic.php?id=133065 แต่ @ user89709 มีคำตอบที่ดีนั่นอาจจะเป็นการดีกว่าที่จะไม่ทำให้กระบวนการเริ่มต้นเข้าสู่โหมดสลีปเป็นเวลา 8 วินาทีในการรีบูตทุกครั้ง

สิ่งนี้อาจทำ:xterm -hold -e "sleep 8 && gedit test.txt"

ถ้าฉันเรียกใช้ในเดสก์ท็อปด้วยตนเอง: sleep 10 && gedit test.txtมันใช้งานได้ แต่ในrc.localไฟล์สิ่งเดียวที่ใช้ได้gnome-terminal -e "gedit test.txt"กับสลีปมันไม่ทำงาน ฉันลองทั้งสองgnome-terminal -e "sleep 10 && gedit text.txt"เช่นเดียวกับsleep 10 && gnome-terminal -e "gedit test.txt"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.