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


15

ฉันจะรับสคริปต์ให้ดำเนินการโดยอัตโนมัติเมื่อฉันเข้าสู่ระบบได้อย่างไร ไม่ใช่เมื่อเครื่องเริ่มทำงานและไม่ใช่สำหรับผู้ใช้ทั้งหมด แต่เฉพาะเมื่อฉัน (หรือผู้ใช้ที่มีสคริปต์) เข้าสู่ระบบผ่าน GNOME UI

จากการอ่านที่อื่นฉันคิดว่ามันอยู่.bash_profileในไดเรกทอรีบ้านของฉัน แต่สำหรับฉันมันไม่มีผลกระทบ เมื่อฉันรันมันด้วยตนเองในหน้าต่างเทอร์มินัลโดยการพิมพ์~/.bash_profileมันจะทำงานได้ แต่มันจะไม่ทำงานโดยอัตโนมัติเมื่อฉันเข้าสู่ระบบ

ฉันใช้ Ubuntu 11.04 ได้รับอนุญาตจากไฟล์บน .bash_profile -rwx------ของฉันคือ ไม่มี. bash_profile ในโฮมไดเร็กตอรี่ของฉันก่อนที่ฉันจะสร้างมันขึ้นมาวันนี้

ฉันดูเหมือนจะจำ Linux เวอร์ชันเก่าที่มี.profileไฟล์สำหรับผู้ใช้แต่ละคน แต่นั่นไม่ได้ผล

เป็นอย่างไรบ้าง? ฉันต้องกำหนดค่าอย่างอื่นเพื่อให้. bash_profile ทำงานได้หรือไม่ หรือสคริปต์เข้าสู่ระบบต่อผู้ใช้จำเป็นต้องอยู่ในไฟล์อื่นหรือไม่?


.bash_profile, .profile และ. bashrc (ซึ่งเป็นอันที่ใช้จริงโดย ubuntu) จะถูกโหลดทุกครั้งที่คุณเปิดเทอร์มินัล bash ดังนั้นจริง ๆ แล้วฉันไม่แน่ใจว่าพวกเขาจะถูกโหลดถ้าคุณเพียงแค่ลงชื่อเข้าใช้ GDM
Juan Sebastian Totero

การโพสต์เวอร์ชั่น Ubuntu ของคุณอาจช่วยได้ ใน Ubuntu 10.10 .bashrc "ใช้งานได้สำหรับฉัน (TM)"
Vlueboy

คุณหมายถึงเมื่อคุณเข้าสู่ GUI หรือเปลือก?
Flimzy

ทุบตีโหลดมันเมื่อคุณเริ่มเชลล์ใหม่ดังนั้นมันจะถูกโหลดเมื่อคุณเปิดหน้าต่างเทอร์มินัลหรือล็อกอินเข้าสู่เทอร์มินัลเสมือนไม่ใช่เมื่อคุณเข้าสู่ Gnome (GDM)
shiftycow

ฉันใช้ Ubuntu 11.04 ตามที่ฉันพูดถึงในคำถามเดิม
Mike Rowave

คำตอบ:


11

คุณสามารถเพิ่มคำสั่งต่อไปนี้ในระบบ> การตั้งค่า> แอปพลิเคชันเริ่มต้น:

bash /full/path/to/your/script.sh

ที่ควรทำเคล็ดลับ;)


คุณรู้ว่าฉันทำสิ่งนั้นมาก่อนและมันไม่ทำงาน ... ยกเว้นว่าฉันไม่ได้เขียน "ทุบตี" ก่อนที่เส้นทางของสคริปต์! ฉันจะลองด้วยการทุบตีในภายหลัง จากความอยากรู้เมื่อคุณป้อนบางสิ่งผ่าน GUI ลงในแอปพลิเคชันเริ่มต้นไฟล์ใดบ้างที่ลงทะเบียนไว้
Mike Rowave

โปรแกรมเริ่มต้นควรลงทะเบียนใน/etc/xdg/autostart
shiftycow

การเพิ่มbash /home/myusername/scriptnameลงใน "แอปพลิเคชันเริ่มต้น" ใช้งานได้! ขอบคุณ อย่างไรก็ตามสิ่งนี้อาจเฉพาะเจาะจงกับ GNOME บน Ubuntu นั่นคือสาเหตุที่ฉันสงสัยว่ารายการในรายการเมนู "เริ่มต้นแอปพลิเคชัน" นั้นมีการลงทะเบียนเนื่องจากจะมีความคล้ายคลึงกับ Linux รุ่นอื่น ๆ ที่ทันสมัยกว่า
Mike Rowave

2
/etc/xdg/autostartดูเหมือนจะเป็นไฟล์ทั้งระบบไม่ใช่เฉพาะกับผู้ใช้
Mike Rowave

สำหรับรุ่นที่ใหม่กว่าของ ubuntu ดูaskubuntu.com/questions/159887/ …
TooTone

8

ดังนั้นโดยพื้นฐานตามที่แนะนำnodisccให้สร้าง launcher บนเดสก์ท็อป: ~ / .config / autostart / script.desktopพร้อมเนื้อหาต่อไปนี้:

[Desktop Entry]
Type=Application
Name=Autostart Script
Exec=autostart
Icon=system-run
X-GNOME-Autostart-enabled=true

จากนั้นสร้างสคริปต์เริ่มอัตโนมัติ: ~ / bin / autostartด้วยเนื้อหาทุบตีของคุณ:

#!/bin/bash
# Execute bash script below

ตรวจสอบให้แน่ใจว่า~ / bin / autostartสามารถใช้งานได้


5

คุณสามารถเพิ่มบรรทัดใน crontab -

crontab -e

จากนั้นเพิ่มบรรทัดนี้ลงในไฟล์ที่เปิดขึ้น:

@reboot /path/to/your/cool/script

สิ่งนี้จะเรียกใช้สคริปต์เมื่อรีบูต สำหรับรายละเอียดเพิ่มเติมดูman crontab


ฉันไม่รู้ว่าทำไม แต่ฉันไม่สามารถเรียกใช้ไฟล์. sh บน "แอปพลิเคชันเริ่มต้น" ดังนั้นวิธีที่ง่ายที่สุดในการทำตอนนี้คือ cron
Albert Català

1

ลอง~/.xinitrc(ข้อมูลบางอย่างที่นี่: https://wiki.archlinux.org/index.php/Xinitrc ) โปรดจำไว้ว่าสิ่งที่คุณเริ่มในสคริปต์นี้ควรเริ่มต้น / ทำงานในพื้นหลังหรืออาจรบกวนการเข้าสู่ระบบ X


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.