Puncte:0

Nu se poate rula un script shell ca serviciu systemd

drapel hk

Am un mic script pentru a transforma notele de intrare midi în funcții media (creșterea volumului, melodia următoare etc.). Arata cam asa:

#!/bin/bash
aseqdump -p „CMD MM-1” | \
în timp ce IFS=" ," citește src ev1 ev2 ch label1 data1 label2 data2 rest; do
    cazul „$ev1 $ev2 $data1” în
        „Notă la 32” ) tasta xdotool XF86AudioRaiseVolume ;;
        „Notă la 31” ) tasta xdotool XF86AudioLowerVolume ;;
        „Notă la 51” ) tasta xdotool XF86AudioMute ;;
        „Notă la 28” ) tasta xdotool XF86AudioPrev ;;
        „Notă la 29” ) tasta xdotool XF86AudioNext ;;
        „Notă la 50” ) tasta xdotool XF86AudioPlay ;;
    esac
Terminat

Îl pot lansa de pe terminal și rămâne incapabil să primească comenzi până când apăs ctrl+c. Până acum, bine. Întrebarea mea este cum pot folosi acest script ca serviciu, astfel încât să nu-mi fac griji că se află într-un terminal vizibil și rulează la repornire?

Am un fisier de service in /etc/systemd/system/ cu urmatorul continut:

[Unitate]
Descriere=Scriptul meu Shell pentru sincronizare

[Serviciu]
ExecStart=/bin/bash /usr/bin/midi2keys.sh

[Instalare]
WantedBy=multi-user.target
bac0n avatar
drapel cn
Cred că ar trebui să începeți serviciul ca un serviciu de utilizator în loc `/etc/systemd/user` apoi `systemctl --user enable ...`
Puncte:0
drapel in

Pentru a supraviețui repornirii, ar trebui să salvați scriptul

cd /opt/systemd/ atunci sudo chmod a+x YOURSCRIPTFILENAME

apoi creați un serviciu ca

sudo atingeți /etc/systemd/system/YOURSERVICENAME.service

Apoi editați fișierul tastând sudo nano /etc/systemd/system/YOURSERVICENAME.service și apoi tastând:

[Unitate]
Descriere=Scriptul meu Shell pentru sincronizare

[Serviciu]
ExecStart=/bin/bash /usr/bin/midi2keys.sh

[Instalare]
WantedBy=multi-user.target

apoi Ctrl + X pentru a ieși, Y pentru a salva și intra pentru a scrie fișierul.

Acum, pentru a instala serviciul și a vă asigura că se încarcă la momentul pornirii, tastați:

systemctl daemon-reload
systemctl activați YOURSERVICENAME.service

reporniți mașina.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.