ฉันต้องการเรียกใช้สคริปต์ทันทีที่การตรวจสอบ lightdm ของฉันสำเร็จและ Unity ของฉันเริ่มการโหลด และฉันต้องการเรียกใช้สคริปต์ของฉันในฐานะผู้ใช้รูท
สคริปต์เริ่มต้นอยู่ที่ไหนใน Unity
ฉันต้องการเรียกใช้สคริปต์ทันทีที่การตรวจสอบ lightdm ของฉันสำเร็จและ Unity ของฉันเริ่มการโหลด และฉันต้องการเรียกใช้สคริปต์ของฉันในฐานะผู้ใช้รูท
สคริปต์เริ่มต้นอยู่ที่ไหนใน Unity
คำตอบ:
ขั้นแรกให้ใส่สคริปต์ของคุณ/usr/bin
และให้สิทธิ์ในการดำเนินการ
ตอนนี้สร้างไฟล์ .desktop /home/[user-name]/.config/autostart/
ซึ่งรันสคริปต์ของคุณซึ่งทำงานเมื่อเริ่มต้น
ตัวอย่าง: - ให้ชื่อไฟล์ของสคริปต์คือ "example" หรือ "example.sh"
สร้างไฟล์ .desktop ด้วย gedit ด้วยบรรทัดต่อไปนี้และบันทึกเป็น filename.desktop ใน /home/[user-name]/.config/autostart/
[Desktop Entry]
Type=Application
Exec=sudo example
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=myscript
Comment=Startup Script
ที่นี่Exec=sudo example
หรือExec=sudo example.sh
เรียกใช้สคริปต์ของคุณในฐานะรูทจาก/usr/bin
มอบสิทธิ์ดำเนินการให้กับไฟล์ .desktop
ตอนนี้สคริปต์ทำงานเมื่อเริ่มต้น
ความเป็นไปได้อื่น:
สร้างไฟล์ใน $HOME/.config/upstart/my-upstart-script.conf
start on desktop-start
stop on desktop-end
script
sudo fdisk -l > /home/[user-name]/upstart-test.txt
end script
รายละเอียดเพิ่มเติมเพื่อพุ่งพรวด :
http://ifdeflinux.blogspot.de/2013/04/upstart-user-sessions-in-ubuntu-raring.html
http://upstart.ubuntu.com/cookbook/
ข่าวสารที่จะรันsudo
โดยไม่มีรหัสผ่าน:
วิธีการเรียกใช้แอปพลิเคชันโดยใช้ sudo โดยไม่ต้องใช้รหัสผ่าน?
/home/yourusername/.config/upstart/
นี้ เปิดผู้กำกับบ้านของคุณในหอยโข่งกด Ctrl + H แล้วคุณจะเห็นไดเรกทอรี. config
ในการรันคำสั่งในฐานะรูทหลังจากล็อกอินมีเคล็ดลับง่ายๆ:
ใช้เวลาสองขั้นตอน:
/etc/crontab
) เพื่อเรียกใช้สคริปต์เล็ก (เรียกใช้คำสั่งของคุณ) ถ้าและเพียงถ้าไฟล์ทริกเกอร์ที่มีอยู่ เนื่องจากไฟล์ทริกเกอร์ถูกลบโดยสคริปต์เดียวกันคำสั่งของคุณจะรันเพียงครั้งเดียวลำดับนั้นคือ:
USER LOGIN > trigger file is created > cronjob runs script (with your command) and removes trigger file, > next time the script passes, since the trigger file does not exist anymore
การตั้งค่า
สคริปต์เล็ก ๆ สองตัว:
หนึ่งในการสร้างไฟล์ทริกเกอร์ในการเข้าสู่ระบบ:
#!/bin/sh
touch $HOME/.trigger
และหนึ่งสองรันคำสั่ง:
#!/bin/bash
FILE="/path/to/your/homedirectory/.trigger"
# don't use $HOME here, since you run it by root
if [ -f $FILE ]; then
<your command here, run by root>
rm -f $FILE
fi
create_trigger.sh
run_command.sh
เพิ่มคำสั่งต่อไปนี้ในแอปพลิเคชันเริ่มต้นของคุณ (Dash> แอปพลิเคชันเริ่มต้น> เพิ่ม)
/path/to/create_trigger.sh
เพิ่มบรรทัดต่อไปนี้ใน/etc/crontab
ไฟล์ ( sudo nano /etc/crontab
):
* * * * * root /path/to/run_command.sh
ตอนนี้คำสั่งที่กำหนดจะรันครั้งเดียวภายในหนึ่งนาทีจากการเข้าสู่ระบบ