Windows Startup เทียบเท่ากับ Linux คืออะไร


16

มีวิธีใดบ้างที่จะเพิ่มแอพพลิเคชั่น / สคริปต์ลงในการเริ่มต้น Linux ดังนั้นทุกครั้งที่ระบบบู๊ตมันจะถูกสั่งการ?

ฉันกำลังมองหาวิธีอัตโนมัติบางอย่างเช่นผู้ใช้ไม่ควรเพิ่มงาน cron หรืออะไรทำนองนั้น



ถ้าเป็นอูบุนตูก็ใช้ $ gnome-session-Properties
user3804598

คำตอบ:


11

สิ่งที่ต้องการCron ?

หมายเหตุ@rebootรายการ

นี่เป็นวิธีที่ยืดหยุ่นที่สุดและเป็นหนึ่งใน "งานที่กำหนดเวลา" ของ Windows (ดีกว่าจริง ๆ )


เป็นไปได้หรือไม่ที่จะเพิ่มงานใน CRON โดยไม่ได้ตั้งใจ
Sourav

ใช่. เพียงแค่เขียน/etc/cron.dหรือโทร crontab จากโปรแกรมของคุณโดยที่พวกเขาไม่รู้

คุณหมายถึงอะไร หากคุณหมายถึงเพิ่มโปรแกรมด้วยตนเองโดยทางโปรแกรมใช่แล้ว Crontabs เป็นเพียงไฟล์ข้อความ

10

Xorg เริ่มอัตโนมัติ

นอกเหนือจากสคริปต์เริ่มต้นระดับระบบสภาพแวดล้อมเดสก์ท็อปของคุณอาจมีวิธีการทำงานของโปรแกรมอัตโนมัติ แฟ้ม.config/autostartควรเป็นวิธีที่เป็นกลางบนเดสก์ท็อปในการกำหนดรายการการทำงานอัตโนมัติ /etc/xdg/autostartสำหรับการกำหนดค่าทั้งระบบ รายละเอียดเกี่ยวกับสเปคที่http://developer.gnome.org/autostart-spec/

สำหรับรายการ autostart LXDE ยังสามารถตั้งค่า~/.config/lxsession/LXDE/autostartได้

มันแตกต่างกันเล็กน้อยถ้าคุณต้องการเรียกใช้สคริปต์ของคุณหลังจากที่เครือข่ายเริ่มทำงาน ในกรณีนี้คุณควรตรวจสอบสคริปต์การเชื่อมต่อพิเศษที่สามารถกำหนดได้สำหรับผู้จัดการเครือข่ายของคุณ ทั้งNetworkManagerและwicdมีวิธีการของตนเองในการระบุรายการการทำงานอัตโนมัติหลังการเชื่อมต่อ หากเครือข่ายมีการกำหนดค่าผ่านifupdownสามารถวางสคริปต์ลงใน/etc/network/if-up.d/โฟลเดอร์ได้ แต่วิธีที่ดีกว่าในการเรียกใช้สคริปต์การโพสต์การเชื่อมต่ออาจเป็น systemd (สำหรับระบบที่รองรับซึ่งเป็นส่วนใหญ่ของ distros ที่ทันสมัย)

เริ่มอัตโนมัติเป็นบริการ systemd

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

systemd ได้กลายเป็นแพร่หลายใน distros ที่ทันสมัยและมีการควบคุมและความยืดหยุ่นในแง่ของวิธีการเริ่มบริการของคุณและวิธีการทำงาน

ฉันจะสรุปผลประโยชน์บางอย่าง ( systemd สามารถทำได้มากขึ้น ):

  • เรียกใช้ในฐานะรูทหรือในฐานะผู้ใช้เฉพาะ: เช่น User=myuser
  • เริ่มบริการใหม่เมื่อล้มเหลวด้วยการหมดเวลาที่กำหนดค่าได้: Restart=on-failure|on-watchdog|on-abnormal|always
  • การตั้งค่าประเภทบริการ: Type=simple|forking|oneshot|notify|dbus
  • สร้างเงื่อนไขการเริ่มต้นและการอ้างอิงเช่นคุณสามารถตั้งค่าบริการของคุณเพื่อเริ่มต้นหลังจากที่เครือข่ายขึ้น ( Wants=network-online.targetใน[Unit]ส่วน)

ตัวอย่างบริการที่เริ่ม telegram-cli daemon /etc/systemd/system/tg.serviceวางไว้ใน

[Unit]
Description=MyDaemon
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/local/bin/telegram-cli -k /etc/telegram-cli/tg-server.pub -W -P 1234 -d -vvvRC
ExecStop=/usr/bin/pkill -f telegram-cli

User=jicu

[Install]
WantedBy=multi-user.target

ตอนนี้คุณสามารถเปิดใช้งานบริการเพื่อเริ่มอัตโนมัติ:

sudo systemctl enable tg

เริ่มบริการ:

sudo systemctl start tg

หยุดบริการ:

sudo systemctl stop tg

ตรวจสอบสถานะ:

systemctl status tg

ปิดการใช้งานบริการ:

sudo systemctl disable tg

ที่จะช่วยให้คุณประหยัดในการพิมพ์พิเศษที่คุณสามารถเพิ่มในของคุณ~/.bashrcสายแล้วคุณจะสามารถร่นคำสั่งข้างต้นเช่นalias sc='sudo systemctl $*'sc start tg

หมายเหตุ: หากคุณเคยใช้cronแล้วจะรู้ว่ารายการ crontab นั้นทำงานในสภาพแวดล้อมที่ จำกัด - เช่นเดียวกับsystemd: ใช้เส้นทางที่แน่นอนเสมอและไม่ตั้งสมมติฐานของตัวแปรใด ๆ ตั้งค่าตัวแปรใด ๆ ที่สคริปต์ของคุณขึ้นอยู่กับอย่างชัดเจน systemd จะไม่ใช้ของผู้ใช้ของคุณและ.bashrc$PATH

ข้อมูลเพิ่มเติม:


7

ใช่เป็นไปได้ที่จะเรียกใช้โปรแกรมเมื่อเริ่มต้นบน Linux โดยการกำหนดพา ธ ไปยังไฟล์ที่เรียกใช้งานได้rc.localซึ่งจะอยู่ในไดเรกทอรี/etcหรือ/etc/rc.dเช่น:

#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
/path/to/executable

หมายเหตุ: อย่าลืมกำหนดสิทธิเรียกใช้ตามที่อธิบายไว้ในเอกสารของไฟล์เช่น Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure that this script will be executed during boot.


การเพิ่มรายการในไฟล์จะเริ่มโปรแกรมทุกครั้งหรือไม่
Sourav

2
ทุกครั้งที่คุณเริ่มระบบใหม่ใช่ หากคุณต้องการงานที่กำหนดไว้เป็นประจำ (ทุกวันชั่วโมงสัปดาห์หรือชุดค่าผสมแปลก ๆ ) ตัวcronกำหนดตารางเวลาคือเพื่อนของคุณ

3
  1. ค้นหาStartup applicationsโดยใช้ปุ่มโฮม
  2. คลิก Add
  3. ป้อนชื่อเพื่อโทรไปที่แอปพลิเคชัน (ชื่อใด ๆ จะทำ)
  4. ใน Startup command boxป้อนคำสั่ง
  5. คลิก OK (คุณควรเห็นคำสั่งใหม่ของคุณในรายการ)
  6. คลิก Close

ทดสอบโดยการรีสตาร์ทหรือออกจากระบบและกลับเข้ามาใหม่

ที่มา: https://help.ubuntu.com/community/AddingProgramToSessionStartup


1

การแจกแจงแต่ละครั้งใช้เทคนิคบูทสแตรปแต่ละตัวดังนั้นต้องดูเอกสารสำหรับ distro ของคุณ /etc/rc.local เป็นสถานที่ที่คุณสามารถวางสคริปต์อัตโนมัติบางอย่าง แต่มันล้าสมัยไปแล้ว ขณะนี้ระบบที่ใช้ Linux ส่วนใหญ่ใช้ runlevels หรือ systemd bootstraping ดังนั้นงาน autostarted ส่วนใหญ่จึงสามารถควบคุมคุณภาพได้


0

ฉันพบคำตอบของฉันที่นี่: /programming/7221757/run-automatically-program-on-startup-under-linux-ubuntu ฉันสามารถสร้างไฟล์ / สคริปต์เพื่อปิด trackpad ของฉันในขณะที่ฉันอยู่ Linux Ubuntu 12.10 ของฉัน


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

กำลังมองหาวิธีที่จะทำให้เป็นอัตโนมัติและปิด trackpad ของฉันเมื่อเริ่มต้น คำสั่งที่ฉันป้อนใน Terminal คือ 'sudo modprobe -r psmouse' ซึ่งจะปิดแทร็คแพดขณะที่อยู่ในเซสชันปัจจุบัน ฉันต้องการที่จะทำให้มันเป็นแบบอัตโนมัติตอนบูต ฉันทำการวิจัยและเขียนสคริปต์โดยการแก้ไขไฟล์ /etc/rc.local เพิ่ม 'sudo modprobe -r psmouse จากนั้นออกคำสั่งต่อไปนี้จากเทอร์มินัล: 'sudo mv / filename /etc/init.d/' 'sudo chmod + x /etc/init.d/filename' 'sudo update-rc.d filename defaults' ตอนนี้ทัชแพดปิดอยู่ เมื่อเริ่มต้น
CatGuyTX
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.