Paano Patakbuhin ang Mga Utos at Script ng Awtomatikong sa isang System Reboot

How Run Linux Commands



Ang pagpapatakbo ng mga app at script nang awtomatiko sa pagsisimula ay maaaring maging kapaki-pakinabang para sa pag-automate ng mga karaniwang gawain sa boot at kaganapan. Ipapaliwanag ng artikulong ito ang ilang mga pamamaraan na maaaring magamit para sa paglulunsad ng mga app at script sa isang bagong pag-reboot o isang bagong pag-login.

Mga Application sa Startup

Ang Ubuntu at iba pang mga pamamahagi batay sa GNOME ay mayroong isang application na simpleng tinatawag na Startup Applications. Maaari itong magamit para sa pamamahala ng mga app at script na tumatakbo sa isang sariwang reboot ng system o pag-login.







Ilunsad ang Startup Applications app mula sa launcher ng application at mag-click sa Magdagdag ng pindutan upang magdagdag ng isang bagong entry.





Punan ang mga patlang ng Pangalan at Command ayon sa iyong mga pangangailangan at pagkatapos ay mag-click sa Magdagdag ng pindutan upang tapusin ang paglikha ng isang bagong entry. Ang entry na nilikha sa screenshot sa ibaba ay magpapadala ng isang Paalala sa backup bilang isang abiso sa system sa bawat pag-reboot / pag-login. Maaari mo itong palitan ng iyong sariling utos o ng buong landas ng iyong bash script. Maaari mo ring gamitin ang anumang umiiral na utos ng system o executable na karaniwang matatagpuan sa iba't ibang mga folder ng bin sa kabuuan ng filesystem.





Tulad ng nakasaad sa itaas, isang backup na paalala ang ipinapakita sa bawat pag-reboot.



Systemd

Ang Systemd ay isang daemon at manager ng serbisyo na naglalaman ng iba't ibang mga kagamitan upang pamahalaan ang mga proseso ng system at mga sangkap ng OS. Sa simplistic form nito, karaniwang ginagamit ito upang magsimula at magtapos ng mga serbisyo sa isang sariwang cycle ng boot.

Maaaring gamitin ang Systemd upang awtomatikong maglunsad ng isang app o magpatakbo ng isang script sa isang bagong boot. Upang likhain ang parehong abiso sa paalala ng backup na ipinaliwanag sa itaas, kailangan mo munang lumikha ng mga kinakailangang folder at file sa pamamagitan ng pagpapatakbo ng mga utos sa ibaba:

$mkdir -p~/.config/sistema/gumagamit
$nano~/.config/sistema/gumagamit/backup_reminder.service

Palitan ang nano ng utos ng iyong paboritong text editor. Palitan ang backup_reminder ng anumang iba pang pangalan na gusto mo.

I-paste ang code sa ibaba sa backup_reminder.service file na nilikha gamit ang utos sa itaas.

[Yunit]
Paglalarawan = Nagpadala ng isang backup na paalala sa bawat pag-reboot
PartOf = graphic-session.target

[Serbisyo]
ExecStart = bash -c 'pagtulog 10; abisuhan-ipadala ang 'Gumawa ng isang Backup'
Type = oneshot

[I-install]
WantedBy = graphic-session.target

Ang code sa itaas ay medyo prangka. Nagpapadala ito ng isang Gumawa ng isang abiso sa Pag-backup 10 segundo pagkatapos na mai-load ang graphic na session (isang beses sa bawat pag-reboot o pag-login).

Patakbuhin ang mga utos sa ibaba upang paganahin ang serbisyo upang awtomatiko itong tumakbo sa bawat pag-reboot.

$chmod 644~/.config/sistema/gumagamit/backup_reminder.service
$ systemctl- gumagamit paganahinbackup_reminder.service
$ systemctl- gumagamitdaemon-reload
$ reboot

Ito ay ngunit isang simpleng halimbawa ng pagpapatakbo ng isang pangunahing utos sa boot gamit ang systemd. Maaari ka ring lumikha ng mga advanced na serbisyo na may maraming mga kundisyon at maraming mga utos. Para sa karagdagang impormasyon, mag-refer sa pahina ng systemd man sa pamamagitan ng pagpapatakbo ng utos sa ibaba:

$lalakisistema

Tandaan na ipinapaliwanag ng halimbawang ito ang paglikha ng isang bagong serbisyo na hindi nangangailangan ng pag-access sa root at angkop para sa awtomatikong pagsisimula ng mga app na hindi nangangailangan ng mga pahintulot sa ugat. Kung nais mong awtomatikong simulan ang mga script na nangangailangan ng pag-access sa root, kailangan mong lumikha ng isang bagong serbisyo ng systemd sa / etc / systemd / system Directory sa halip na ~ / .config / systemd / folder ng gumagamit at alisin ang switch ng –user sa mga utos na nabanggit sa itaas.

Cron Job

Ang Cron ay isang tool na maaaring pana-panahong magpatakbo ng mga naka-iskedyul na gawain alinsunod sa mga kundisyong tinukoy ng isang gumagamit. Ang mga naka-iskedyul na trabaho na ito ay nilikha sa Crontab sa isang paunang natukoy na format. Sa simpleng mga termino, sinabi ng Crontab kay Cron kung aling mga trabaho ang tatakbo sa anong oras ng oras.

Tulad ng systemd, ang mga trabaho sa crontab ay maaaring magamit upang maglunsad ng mga app at awtomatikong patakbuhin ang mga script sa boot. Upang magdagdag ng bagong trabaho sa cron, patakbuhin ang utos sa ibaba:

$crontab-At

Idagdag ang mga sumusunod na linya sa dulo ng text file (awtomatikong naglulunsad ng terminal ng GNOME sa bawat pag-reboot):

SHELL = / bin / bash
@reboot sleep 30 && DISPLAY =: 0 gnome-terminal

Maaari mong gamitin ang iyong sariling utos o magbigay ng buong landas sa isang shell script.

Tandaan na hindi tulad ng systemd, hindi matukoy ng cron kung na-load o hindi ang graphic na session. Kailangan mong tukuyin ang ilang tinatayang tagal ng paghihintay hanggang sa naglo-load ang X server at isang identifier ng display. Maaari mong malaman ang tungkol sa iyong display ID sa pamamagitan ng pagpapatakbo ng utos sa ibaba:

$itinapon $ DISPLAY

Ang pagkaantala bago ang pagpapatupad ng utos o script ay nakasalalay sa pagsasaayos ng iyong system at oras ng pag-boot.

Rc.local

Ang isa pang pamamaraan upang magpatakbo ng mga script at utos sa pagsisimula ay ang paggamit ng rc.local file. Tandaan na sa aking pagsubok, hindi ko nagawang ipagpaliban ang pagpapatupad ng script hanggang sa ang session ng grapiko ay live. Ang pagdaragdag ng anumang pagkaantala sa pagtulog ay hahantong sa pagkaantala sa pagpapakita ng login screen mismo. Dahil dito, wala akong tagumpay sa pagpapatakbo ng mga graphic app sa pagsisimula gamit ang rc.local file. Ang pag-edit sa rc.local ay nangangailangan din ng pag-access sa ugat, hindi katulad ng lahat ng iba pang mga halimbawang ipinaliwanag sa itaas.

Upang magdagdag ng mga utos / script sa rc.local file, patakbuhin ang utos sa ibaba (lumilikha ng isang bagong rc.local file kung wala ito):

$sudo nano /atbp/rc.local

Idagdag ang iyong mga utos sa pagitan ng #! / bin / bash at exit 0 na mga linya, tulad ng ipinakita sa ibaba:

#! / basahan / bash
path / to / my_script.sh
exit 0

Gawing maipapatupad ang rc.local file sa pamamagitan ng pagpapatakbo ng utos sa ibaba:

$sudo chmod+ x/atbp/rc.local

I-reboot lamang para magkabisa ang startup script.

Konklusyon

Ito ang ilang mga pamamaraan na maaaring magamit upang awtomatikong magpatakbo ng mga script at app sa pagsisimula. Kung naghahanap ka upang magpatakbo ng mga script na hindi nangangailangan ng pag-access sa root, inirerekumenda kong gamitin ang Startup Applications GUI app. Kung nais mong magpatakbo ng mga app at script na may root access, iminumungkahi ko sa iyo na lumikha ng isang serbisyo sa antas ng systemd.

Tungkol sa may-akda

Nitesh Kumar

Ako ay isang developer ng freelancer software at manunulat ng nilalaman na gusto ang Linux, open source software at ang libreng pamayanan ng software.

Tingnan ang lahat ng mga post