วิธีรันเชลล์สคริปต์เมื่อเริ่มต้น


366

ในอินสแตนซ์Amazon S3 Linux ฉันมีสคริปต์สองตัวที่เรียกใช้start_my_appและตัวstop_my_appใดที่เริ่มและหยุดอย่างถาวร (ซึ่งจะเรียกใช้แอปพลิเคชัน Node.js ของฉัน) ฉันใช้สคริปต์เหล่านี้เพื่อเริ่มและหยุดแอปพลิเคชัน Node.js ของฉันด้วยตนเอง จนถึงตอนนี้ดีมาก

ปัญหาของฉัน: ฉันต้องการตั้งค่าให้start_my_appทำงานเมื่อใดก็ตามที่ระบบบู๊ต ฉันรู้ว่าฉันต้องเพิ่มไฟล์ข้างในinit.dและฉันรู้วิธีเชื่อมโยงไปยังไดเรกทอรีที่เหมาะสมภายในrc.dแต่ฉันไม่สามารถเข้าใจได้ว่าจริงๆแล้วสิ่งที่ต้องเข้าไปในไฟล์ที่ฉันวางinit.dไว้ ฉันคิดว่ามันควรจะเป็นแค่หนึ่งบรรทัดเช่นstart_my_appนั้น แต่นั่นไม่ได้ผลสำหรับฉัน


5
ฉันไม่มีประสบการณ์ในสิ่งนี้ แต่ฉันคิดว่าinit.dโซลูชัน ( ที่นี่ ) ควรเป็นที่นิยมสำหรับการrc.localแก้ปัญหาเพราะอันหลังคือเครื่องมือเก่าซึ่งยังใช้งานได้เพียงเพราะเครื่องมือใหม่เข้ากันได้แบบย้อนหลัง
erikbwork

pm2 เริ่ม my_app; เริ่มต้น pm2; pm2 บันทึกgithub.com/Unitech/pm2
Unitech

คำตอบ:


292

ในไฟล์ที่คุณใส่ไว้/etc/init.d/คุณต้องตั้งค่าให้สามารถเรียกทำงานได้ด้วย

chmod +x /etc/init.d/start_my_app

ขอบคุณ @meetamit หากนี่ไม่ได้ทำงานคุณต้องสร้าง symlink /etc/rc.d/

ln -s /etc/init.d/start_my_app /etc/rc.d/

โปรดทราบว่าใน Debian ล่าสุดสิ่งนี้จะไม่ทำงานเนื่องจากสคริปต์ของคุณจะต้องเป็นไปตามมาตรฐาน LSB (จัดเตรียมอย่างน้อยที่สุดการดำเนินการต่อไปนี้: เริ่มหยุดหยุดรีสตาร์ทบังคับโหลดใหม่และสถานะ): https: //wiki.debian .org / LSBInitScripts

ในฐานะที่เป็นโน้ตคุณควรใส่เส้นทางที่สมบูรณ์ของสคริปต์ของคุณแทนที่จะเป็นเส้นทางญาติมันอาจแก้ปัญหาที่ไม่คาดคิด:

/var/myscripts/start_my_app

และอย่าลืมเพิ่มที่ด้านบนของไฟล์:

#!/bin/sh

6
ฉันทำสิ่งนี้และมันไม่ทำงาน มันจะทำงานโดยอัตโนมัติเพียงเพราะมันอยู่ใน / etc / in.d.d หรือฉันต้องทำอะไรบางอย่างที่ด้านบนเพื่อกำหนดให้มันทำงานเมื่อระบบเริ่มต้น?
สัตว์สะเทินน้ำสะเทินบก

4
@amphibient ยังไม่พอ ... คุณต้องสร้าง symlink ไปยังไฟล์นี้ (โดยใช้lnคำสั่ง) ไปยังไดเรกทอรีภายในrc.d
พบกับ

23
ไม่มีไดเรกทอรี rc.d ในโฟลเดอร์ etc root ของฉัน .. สิ่งนี้ทำให้ฉันตะลึงงันนี่ไม่ใช่ไดเรกทอรีสำคัญที่ Linux ต้องเริ่มต้นใช่หรือไม่ มันขาดหายไปดูเหมือนว่าระบบปฏิบัติการของฉันจะทำงานได้ดี ฉันต้องสร้างมันไหม? ฉันเห็นกลุ่มของไฟล์ที่มีชื่อคล้ายกันเช่น "rc1.d" ไปจนถึง "rc5.d"
OKGimmeMoney

3
ฉันไม่ได้ใด ๆ/etc/rc.dโฟลเดอร์ แต่ฉันมี/etc/rcX.dโฟลเดอร์ (IE /etc/rc0.d , /etc/rc1.d , /etc/rcS.d ) ยังมีไฟล์/etc/rc.local ฉันคิดว่าคุณควรสร้าง symlink ในโฟลเดอร์ที่กำหนดเองเช่น/etc/rc9.dหรือในหนึ่งในที่มีอยู่ ... (Ubuntu Server 14.04)
F8ER

2
คำถามนี้ช่วยฉันด้วยสิ่งนี้: unix.stackexchange.com/questions/28679/…
seth10

344

ตั้ง crontab สำหรับสิ่งนี้

#crontab -e
@reboot  /home/user/test.sh

หลังจากเริ่มต้นทุกครั้งจะเรียกใช้สคริปต์ทดสอบ


4
นี่เป็นทางออกเดียวที่ทำงานให้ฉันไม่ยุ่งยาก! ขอบคุณ
whoopididoo

20
นี่เป็นทางออกที่ดีที่สุด @reboot sh $HOME/test.shใน crontab นั้นสะอาดยิ่งขึ้น
3667089

4
@ user3667089 จริงๆแล้วมันไม่ทำงาน ฉันเปิดเทอร์มินัลป้อน "crontab -e" หน้าต่างจะปรากฏขึ้นโดยที่ฉันเขียนใน "@reboot sh /home/user/test.sh" แต่มันไม่ทำงานเมื่อเริ่มต้น ฉันทำผิดไปไหน
MycrofD

1
@ user3667089 บรรทัดเริ่มต้นปกติ '# แก้ไขไฟล์นี้เป็น ... ' แล้วบรรทัดที่ฉันเขียน '@reboot sh /home/.../.sh' ฉันยังลอง '@reboot /home/.../.sh' โดยไม่มี "sh" เริ่มต้น แต่ไม่มีผลลัพธ์
MycrofD

3
@MycrofD คุณcrontab -lควรแสดงให้เห็น@reboot sh $HOME/test.shว่ามีการตั้งค่าไว้จริง ๆ
3667089

124

วิธีง่ายๆคือการเพิ่มบรรทัดใน/etc/rc.local:

/PATH/TO/MY_APP &

หรือถ้าคุณต้องการเรียกใช้คำสั่งในฐานะผู้ใช้พิเศษ:

su - USER_FOOBAR -c /PATH/TO/MY_APP &

(เครื่องหมายแอมเปอร์แซนด์ต่อท้ายสร้างพื้นหลังกระบวนการและอนุญาตให้ rc.local ดำเนินการต่อไป)

หากคุณต้องการสคริปต์เริ่มต้นเต็มรูปแบบเดเบียน distro มีไฟล์เทมเพลตดังนั้น:

cp /etc/init.d/skeleton /etc/init.d/your_app

และปรับมันเล็กน้อย


2
ขอบคุณ! วิธีการนี้กลับกลายเป็นว่าทำงานได้ดีที่สุดเนื่องจากมีข้อกำหนดแบบง่าย ๆ ฉันค่อนข้างมั่นใจว่าฉันต้องระบุผู้ใช้ไม่เช่นนั้นเมื่อต้องหยุดแอพด้วยตนเอง (โดยเรียกใช้stop_my_app) ฉันต้องทำด้วยsudoใช่ไหม? นอกจากนี้ฉันยังสงสัยว่าฟังก์ชั่นของแอมเปอร์แซนด์ (?) ต่อท้ายคืออะไร
meetamit

3
ผู้ใช้ขึ้นอยู่กับแอพของคุณ แต่ถ้าไม่จำเป็นอย่างยิ่งที่จะต้องรันเป็นรูทให้หลีกเลี่ยง &เรียกใช้กระบวนการในพื้นหลัง
Gilles Quenot

2
sputnick ขอโทษ แต่ฉันต้องทำเครื่องหมาย Koren ว่าเป็นคำตอบที่ได้รับการยอมรับส่วนใหญ่เป็นเพราะสิ่งที่ @ erikb85 ชี้ให้เห็น แต่เพราะคำถามเดิมของฉันถามหาinit.dวิธีในการทำสิ่งต่าง ๆ (คำตอบของคุณเป็นวิธีที่ง่ายกว่าสำหรับฉันในเวลานั้น) . โพสต์นี้ได้รับจำนวนการดูและโหวตมากมายดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องรักษาให้ถูกต้อง
พบกับ

4
มันดูเหมือนว่าจะไม่มีการพูดถึงว่าตัวต่อท้ายและพื้นหลังกระบวนการและช่วยให้ rc.local เพื่อดำเนินการต่อ
mchicago

ขอบคุณสำหรับสิ่งนี้! ใช้เวลาสองสามชั่วโมงในการกระแทกหัวกับผนังในขณะที่ฉันพยายามให้บริการ แต่ไม่มีอะไรทำงาน ลองสิ่งนี้แล้วทำงานเหมือนจับใจ!
Marko Grešak

34

นี่คือวิธีที่ฉันทำกับระบบRed Hat Linux

ใส่สคริปต์ของคุณในการ/etc/init.dเป็นเจ้าของโดยรากและปฏิบัติการ ที่ด้านบนของสคริปต์คุณสามารถกำหนดคำสั่งchkconfigได้ ตัวอย่างสคริปต์ต่อไปนี้ใช้เพื่อเริ่มต้นแอปพลิเคชัน Java เป็นผู้ใช้ oracle

ชื่อของสคริปต์คือ /etc/init.d/apex

#!/bin/bash
# chkconfig: 345 99 10
# Description: auto start apex listener
#
case "$1" in
 'start')
   su - oracle -c "cd /opt/apex ; java -jar apex.war > logs/apex.log 2>logs/apex_error.log &";;
 'stop')
   echo "put something to shutdown or kill the process here";;
esac

สิ่งนี้บอกว่าสคริปต์ต้องทำงานที่ระดับ 3, 4 และ 5 และลำดับความสำคัญสำหรับการเริ่ม / หยุดคือ 99 และ 10

จากนั้นในฐานะผู้ใช้rootคุณสามารถใช้chkconfigเพื่อเปิดใช้งานหรือปิดใช้งานสคริปต์เมื่อเริ่มต้น:

chkconfig --list apex
chkconfig --add apex

service start/stop apexและคุณสามารถใช้


ในระหว่างนี้ฉันได้ทดลองกับแพ็คเกจที่เรียกว่า supervisord ( supervisord.org ) ซึ่งมีอยู่ในที่เก็บ epel มันสามารถใช้ในการเริ่มโปรแกรมและตรวจสอบพวกเขาเริ่มต้นใหม่เมื่อล้มเหลว
Saule

แทนที่จะพิมพ์: "chkconfig --add service_name" หลังจากใส่สคริปต์ไปยังโฟลเดอร์ /etc/init.d/ คุณสามารถพิมพ์: "chkconfig service_name บน"
Dragan Radevic

22

ป้อนcronโดยใช้sudo:

sudo crontab -e

เพิ่มคำสั่งเพื่อเรียกใช้เมื่อเริ่มต้นในกรณีนี้สคริปต์:

@reboot sh /home/user/test.sh

บันทึก:

กด ESC แล้ว: x เพื่อบันทึกและออกหรือกด ESC แล้ว ZZ (นั่นคือ Shift + zz)

ทดสอบทดสอบทดสอบ :

  1. รันสคริปต์ทดสอบโดยไม่ cron เพื่อให้แน่ใจว่าใช้งานได้จริง

  2. ให้แน่ใจว่าคุณบันทึกคำสั่งของคุณใน cron ใช้ sudo crontab -e

  3. รีบูตเซิร์ฟเวอร์เพื่อยืนยันว่าใช้งานได้ทั้งหมด sudo @reboot


ฉันชอบสิ่งนี้มาก ขอบคุณ! ps อย่าใช้sudoถ้าคุณต้องการเรียกใช้คำสั่งบางอย่างระหว่างการเริ่มต้นโดยใช้ผู้ใช้ปัจจุบัน
danger89

ข้อมูลนี้ควรเก็บไว้ที่ไหน ไม่ได้อยู่ใน/tmp?
Peter Mortensen

15

เพียงแค่เพิ่มบรรทัดลงใน crontab ของคุณ ..

ตรวจสอบให้แน่ใจว่าไฟล์ปฏิบัติการได้:

chmod +x /path_to_you_file/your_file

ในการแก้ไขไฟล์ crontab:

crontab -e

บรรทัดที่คุณต้องเพิ่ม:

@reboot  /path_to_you_file/your_file

ง่าย ๆ !


สิ่งนี้ไม่ได้ผลสำหรับฉันสิ่งที่ฉันขาดหายไปคืออะไร? # uname -a Linux accton-xp70a0-26-a1 3.11.10-301.fc20.x86_64 #1 SMP Thu Dec 5 14:01:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

สิ่งนี้ใช้ได้กับ CentOs 7 สำหรับผู้ที่มีปัญหาฉันจำเป็นต้องสร้างเชลล์สคริปต์ทำให้สามารถเรียกใช้งานได้ (chmod + x file_name) และเรียกเชลล์สคริปต์จาก cron ซึ่งจะเรียกใช้โหนด path_to_file / index.js
SeanOlson

11

ตัวเลือกอื่นคือการมีคำสั่ง @reboot ใน crontab ของคุณ

ไม่ใช่ cron ทุกรุ่นที่รองรับสิ่งนี้ แต่หากอินสแตนซ์ของคุณใช้ Amazon Linux AMI มันจะทำงานได้


6

คุณสามารถทำมันได้ :

chmod +x PATH_TO_YOUR_SCRIPT/start_my_app 

จากนั้นใช้คำสั่งนี้

update-rc.d start_my_app defaults 100

โปรดดูที่หน้านี้ในCyberciti


1
ฉันมีการติดตั้งแบร์โบนที่สวยงามสร้างขึ้นบน yocto และนี่เป็นวิธีเดียวที่จะทำให้สคริปต์ของฉันทำงานได้ ขอบคุณ
Catalin Vasile

3

สร้างของคุณเอง / เริ่มปฏิบัติการ

นี่ไม่ใช่สิ่งที่คุณต้องการ แต่สนุก!

เพียงแค่เลือกไฟล์ที่สามารถเรียกใช้งานได้เองแม้แต่เชลล์สคริปต์และบูตเคอร์เนลด้วยพารามิเตอร์บรรทัดคำสั่ง:

init=/path/to/myinit

ในช่วงท้ายของการบูตเคอร์เนล Linux จะรัน userpace แรกที่ปฏิบัติการได้ที่พา ธ ที่กำหนด

มีหลายโครงการที่ให้initโปรแกรมเรียกใช้ที่นิยมใช้โดย distros หลักเช่น systemd และใน distros init ส่วนใหญ่จะแยกกระบวนการจำนวนมากที่ใช้ในการทำงานของระบบปกติ

แต่เราสามารถจี้/initมันเพื่อรันสคริปต์ขั้นต่ำของเราเองเพื่อทำความเข้าใจระบบของเรา

นี่คือการตั้งค่าที่ทำซ้ำได้น้อยที่สุด: https://github.com/cirosantilli/linux-kernel-module-cheat/tree/f96d4d55c9caa7c0862991025e1291c48c33e3d9/README.md#custom-init


2

โซลูชันที่เรียบง่ายนี้ทำงานให้ฉันบนอินสแตนซ์ Amazon Linux ที่ใช้ CentOS แก้ไข/etc/rc.d/rc.localไฟล์ของคุณและวางคำสั่งไว้ที่นั่น มันถูกกล่าวถึงในไฟล์นี้ว่ามันจะถูกเรียกใช้งานหลังจากสคริปต์ init อื่น ๆ ทั้งหมด ดังนั้นต้องระวังในเรื่องที่เกี่ยวกับ นี่คือลักษณะของไฟล์ที่ค้นหาฉันในขณะนี้ ป้อนคำอธิบายรูปภาพที่นี่. บรรทัดสุดท้ายคือชื่อของสคริปต์ของฉัน


1

วิธีที่ง่ายที่สุดแน่นอนหากสิ่งที่คุณต้องการเรียกใช้คือสคริปต์แบบง่าย ๆ (หรืออะไรก็ได้) คือถ้าคุณมี gui ที่จะใช้ระบบ> การตั้งค่าแล้วแอพเริ่มต้น

เพียงเรียกดูสคริปต์ที่คุณต้องการและไปที่นั่น (ทำให้สคริปต์ทำงานได้)


3
นี่ไม่ได้ทำงานจริงเมื่อเริ่มต้น แต่เข้าสู่ระบบซึ่งแตกต่างกันมาก นอกจากนี้ยังขึ้นอยู่กับการตั้งค่าบางอย่างเนื่องจากคุณไม่มี "ระบบ> การตั้งค่า" ในทุกระบบ (โดยเฉพาะไม่ใช้เซิร์ฟเวอร์)
jazzpi

คำค้นหา 'linux execute at startup' ทำให้ฉันได้รับคำตอบซึ่งฉันกำลังมองหาอยู่ แม้ว่ามันจะไม่ได้ตอบคำถามโดย OP แต่มันอาจช่วย linux (Ubuntu) noobs เหมือนฉันดังนั้นจึงสมควรได้รับ upvote ฉันไม่ชอบมันเหมือนกัน แต่ก็เป็นเรื่องปฏิบัตินิยม
thymaro

1

สำหรับ Debian 9 ดู/ubuntu/228304/how-do-i-run-a-script-at-start-up มันช่วยฉันได้ เวอร์ชั่นย่อสำหรับ Debian 9: เพิ่มคำสั่ง (เป็น root) ไปที่ /etc/rc.local

/path_to_file/filename.sh ||  exit 1   # Added by me
exit 0

น่าจะเป็น/path_to_file/filename.shควรจะปฏิบัติการได้ (ฉันคิดอย่างนั้น)


1

ใน Lubuntu ฉันต้องจัดการกับสถานการณ์ตรงกันข้าม Skype เริ่มทำงานหลังจากบูตและผมพบว่าในไฟล์~/.config/autostart/ skypeforlinux.desktopเนื้อหาของไฟล์มีดังนี้:

[Desktop Entry]
Name=Skype for Linux
Comment=Skype Internet Telephony
Exec=/usr/bin/skypeforlinux
Icon=skypeforlinux
Terminal=false
Type=Application
StartupNotify=false
X-GNOME-Autostart-enabled=true

การลบไฟล์นี้ช่วยฉันได้


0
  • เพิ่มสคริปต์ของคุณไปยังไดเร็กทอรี /etc/init.d/
  • อัปเดตระดับการใช้งาน rc ของคุณ: $ update-rc.d myScript.sh defaults NNโดยที่ NN คือลำดับที่ควรดำเนินการ ตัวอย่างเช่น 99 จะหมายถึงมันจะทำงานหลังจาก 98 และก่อนหน้า 100

0

การทำงานกับ Python 3 microservices หรือ shell; ใช้Ubuntu Server 18.04 (Bionic Beaver) หรือUbuntu 19.10 (Eoan Ermine) หรือUbuntu 18.10 (Cosmic Cuttlefish) ฉันมักจะทำตามขั้นตอนเหล่านี้และมันก็ทำงานได้เสมอเช่นกัน:

  1. การสร้าง microservice ชื่อ p เช่น "brain_microservice1.service" ในกรณีของฉัน:

    $ nano /lib/systemd/system/brain_microservice1.service
  2. ภายในบริการใหม่นี้ที่คุณอยู่:

    [Unit]
    Description=brain_microservice_1
    After=multi-user.target
    
    [Service]
    Type=simple
    ExecStart=/usr/bin/python3.7 /root/scriptsPython/RUN_SERVICES/microservices    /microservice_1.py -k start -DFOREGROUND
    ExecStop=/usr/bin/python3.7 /root/scriptsPython/RUN_SERVICES/microservices/microservice_1.py -k graceful-stop
    ExecReload=/usr/bin/python3.7 /root/scriptsPython/RUN_SERVICES/microservices/microservice_1.py -k graceful
    PrivateTmp=true
    LimitNOFILE=infinity
    KillMode=mixed
    Restart=on-failure
    RestartSec=5s
    
    [Install]
    WantedBy=multi-user.target
  3. ให้สิทธิ์:

    $ chmod -X /lib/systemd/system/brain_microservice*
    $ chmod -R 775 /lib/systemd/system/brain_microservice*
  4. ให้สิทธิ์การดำเนินการแล้ว:

    $ systemctl daemon-reload
  5. เปิดใช้งานจากนั้นสิ่งนี้จะเริ่มต้นเมื่อเริ่มต้นเสมอ

    $ systemctl enable brain_microservice1.service
  6. จากนั้นคุณสามารถทดสอบได้

    $ sudo รีบูตทันที

  7. เสร็จสิ้น = ความสำเร็จ !!

ซึ่งสามารถทำได้ด้วยสคริปต์เนื้อเดียวกันเพื่อเรียกใช้เชลล์ตอบสนอง ... สคริปต์เริ่มต้นฐานข้อมูล ... รหัสระบบปฏิบัติการใด ๆ ... หวังว่าจะช่วยคุณได้ ...

...


0

ฉันอ้างถึงบล็อกนี้มักจะเป็นตัวเลือกที่ดี

https://blog.xyzio.com/2016/06/14/setting-up-a-golang-website-to-autorun-on-ubuntu-using-systemd/

vim /lib/systemd/system/gosite.service

Description=A simple go website
ConditionPathExists=/home/user/bin/gosite

[Service]
Restart=always
RestartSec=3
ExecStart=/home/user/bin/gosite

[Install]
WantedBy=multi-user.target
systemctl enable gosite.service

0

นี่เป็นวิธีที่ง่ายกว่า!

ข้อแรก: เขียนเชลล์สคริปต์และบันทึกเป็น. sh ที่นี่เป็นตัวอย่าง

#!/bin/bash
Icoff='/home/akbar/keyboardONOFF/icon/Dt6hQ.png'
id=13
fconfig=".keyboard"
echo "disabled" > $fconfig
xinput float $id
notify-send -i $Icoff "Internal Keyboard disabled";

สคริปต์นี้จะปิดใช้งานแป้นพิมพ์ภายในเมื่อเริ่มต้น

ที่สอง: เปิดแอปพลิเคชัน "การตั้งค่าแอปพลิเคชันเริ่มต้น"

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

ที่สาม: คลิกเพิ่ม ที่สี่: ในส่วน NAME ให้ชื่อ อันดับที่ห้า: ในส่วนคำสั่งให้ไปที่. sh ที่หก: แก้ไขส่วนคำสั่งของคุณเป็น:

bash <space> path/to/file/<filename>.sh <space> --start

ที่เจ็ด: คลิกเพิ่ม แค่นั้นแหละ! เสร็จแล้ว!

ตอนนี้ยืนยันโดยการรีบูตเครื่องคอมพิวเตอร์ของคุณ

ไชโย!


-1

เจ็บปวดที่ง่ายที่สุดและวิธีการสากลมากที่สุดก็คือการดำเนินการด้วย~.bash_profileหรือ~.profile (ถ้าคุณไม่ได้มีไฟล์ bash_profile)

เพียงเพิ่มคำสั่งการเรียกใช้งานที่ด้านล่างของไฟล์นั้นและจะถูกเรียกใช้เมื่อระบบเริ่มทำงาน

ฉันมีหนึ่งที่ด้านล่างตัวอย่าง; ~\Desktop\sound_fixer.sh


2
มันไม่ถูกต้อง ~/.bash_profileดำเนินการเมื่อผู้ใช้เข้าสู่ระบบ- ไม่เมื่อระบบบูทขึ้น ในคำถามเดิมเจตนาคือการเรียกใช้เซิร์ฟเวอร์แอป Node.js เมื่อเริ่มต้นของเครื่อง โซลูชันของคุณต้องการให้ผู้ใช้ที่เป็นมนุษย์ต้องล็อกอินเข้าสู่เครื่องก่อนที่เซิร์ฟเวอร์ Node.js จะทำงาน และหากปัญหาบางอย่างทำให้เซิร์ฟเวอร์รีบูตข้ามคืนแอพจะไม่กลับมามีชีวิตอีกจนกว่ามนุษย์จะกลับเข้าสู่ระบบ
พบกับ

-6

สำหรับบางคนสิ่งนี้จะได้ผล:

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

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

ฉันไม่เห็นสิ่งนี้ในเมนูการตั้งค่าระบบ แต่ฉันจะเห็นมันเมื่อฉันค้นหาในตัวเรียกใช้งานแอปพลิเคชัน
OKGimmeMoney

นี่ไม่ได้ทำงานจริงเมื่อเริ่มต้น แต่เข้าสู่ระบบซึ่งแตกต่างกันมาก นอกจากนี้ยังขึ้นอยู่กับการตั้งค่าบางอย่างเนื่องจากคุณไม่มี "ระบบ> การตั้งค่า" ในทุกระบบ (โดยเฉพาะไม่ใช้เซิร์ฟเวอร์)
jazzpi

3
คำตอบนี้ดูเหมือนจะมากกว่าบนเดสก์ท็อป Ubuntu / Linux แต่ผู้ใช้ต้องการขอความช่วยเหลือสำหรับอินสแตนซ์ AWS EC2 Linux ซึ่งเท่าที่ฉันทราบไม่มี GUI
Vini.g.fer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.