“ แอปพลิเคชั่นเริ่มต้น” ทำงานอย่างไร


10

ฉันสนใจที่จะรู้ว่า "แอปพลิเคชันเริ่มต้น" ซึ่งคุณสามารถเข้าถึงได้จากท่าเรือทำงานอย่างไร

ฉันต้องการที่จะรู้เรื่องนี้เพราะฉันต้องการทราบความแตกต่างระหว่างการเพิ่มรายการในสถานที่เหล่านี้:

/etc/rc.local 
/etc/profile  
/home/$USER/.profile

และทำเช่นเดียวกันผ่านแอปพลิเคชัน GUI นี้ สิ่งที่เป็นปริศนาของฉันคือฉันไม่เห็นโปรแกรมสร้างรายการใด ๆ ในไฟล์ที่กล่าวถึงข้างต้น

คำตอบ:


8
  • /etc/rc.local

    # This script is executed at the end of each multiuser runlevel.
    # Make sure that the script will "exit 0" on success or any other
    # value on error.
    

    โดยพื้นฐานแล้ว Multiuser Runlevel หมายถึงเมื่อคุณบูตเครื่อง

  • /etc/profile

    ไฟล์นี้ถูกเรียกใช้สำหรับเชลล์การเข้าสู่ระบบเท่านั้นเนื่องจากเป็นจุดประสงค์เฉพาะ

    /etc/profileดำเนินการโดยเชลล์ที่เข้ากันได้กับ Bourne ทั้งหมด (รวมถึงbashและdash) เมื่อเริ่มต้นเป็นเชลล์ล็อกอิน

  • /home/$USER/.profile

    # ~/.profile: executed by the command interpreter for login shells.
    # This file is not read by bash if ~/.bash_profile or ~/.bash_login
    # exists.
    

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

    แหล่ง

    ดังนั้นฉันคิดว่า.profileจะถูกประหารชีวิตหากไม่มีสิ่งเหล่านี้ (ด้วยเหตุผลใดก็ตาม)

  • สุดท้ายวิธี GUI ของคุณจะอาจจะวาง.desktopปืนกลใน/home/$USER/.config/autostart

    นี่คือการทำงานที่เข้าสู่ระบบของผู้ใช้ (เข้าสู่ระบบ GUI เพียงฉันคิดว่า - startxแต่จะไม่ttyเข้าสู่ระบบ)

สรรพนามของฉันคือเขา / เขา


คำสั่ง. profile จะไม่ถูกเรียกใช้ที่การเข้าสู่ระบบ GUI หรือไม่
daltonfury42

@ user3073656 hmmm แอปพลิเคชัน GUI เรียกว่าอะไร
ทิม

ขออภัยด้วยความประมาท! คุณพูดถูก
daltonfury42

@ user3073656 แก้ไขแล้ว
ทิม

8

สภาพแวดล้อมเดสก์ท็อปใด ๆ ที่ทำตามข้อกำหนด freedesktop (aka XDG) ควรใช้แอปพลิเคชันเริ่มต้นอัตโนมัติในการเข้าสู่ระบบของผู้ใช้หรือเมื่อใดก็ตามที่แทรกสื่อที่ถอดออกได้

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

$XDG_CONFIG_DIRS/autostart

แต่เราสามารถมีพวกมันไว้ในตำแหน่งต่อไปนี้:

~/.config/autostart/ ## if $XDG_CONFIG_HOME is not set
etc/xdg/autostart/ ## if $XDG_CONFIG_DIRS is not set

ไม่ว่าในกรณีใด.desktopไฟล์ที่อยู่ใน~/.config/autostartนั้นหมายถึงว่าเป็นไฟล์ที่สำคัญที่สุดที่จะเรียกใช้ดังนั้นจึงเป็นการแทนที่.desktopไฟล์ในตำแหน่งอื่น

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

แอพลิเคชันสามารถอัตโนมัติเริ่มต้นที่เป็นอิสระของเดสก์ทอปจากสถานที่อื่น ๆ อีกมากมายเช่น~/.profileเปลือกใน/etc/rc.localสำหรับการทำงานในช่วงเริ่มต้นของระบบหรือเมื่อเร็ว ๆ นี้โดยใช้systemd


การเพิ่มคำสั่งด้วยวิธีนี้เป็นการดีที่สุดเนื่องจากไม่ต้องใช้เวลามากเมื่อเทียบกับไฟล์. profile ที่เราเพิ่มคำสั่งเริ่มต้น ฉันได้ทดสอบทั้งสองอย่างนี้กับ Dell Inspiron 7560 กับ Ubuntu 16.04 และวิธีนี้ดูดีกว่า
Jasser

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