Stabdom ne visuomet reikalingus servisus. Startuojam juos mygtuku.
Priešistorė
Upgreidinau Ubuntą iki 16.04 (iš 14.04). Viskas praėjo sklandžiai, tačiau operacinės startavimo laikas lyg ir pailgėjo. Pažiūrėjus
$ systemd-analyze plot > ~/Desktop/systemd-analyze-plot.svg
pamačiau, kad Apache ir MySQL užima pakankamai daug sekundžių.
Tad nusprendžiau, kad Apache is MySQL servisai turėtų veikti ne nuolatos, bet tik kai jų reikia. Privalumai:
- greitesnis operacinės startavimas
- naudojama mažiau resursų, kai servisai nereikalingi
- dar kas nors…
Išjungiam
Šalinam procesus iš automatiškai startuojančiųjų:
$ sudo systemctl disable mysql $ sudo update-rc.d apache2 disable
Atmintinė
Jei kada prireiktų, atstatysiu taip:
$ sudo systemctl enable mysql $ sudo update-rc.d apache2 enable
Procesų paleidimas rankiniu būdu:
$ sudo systemctl start mysql $ sudo service apache2 start
Patikrinimas, ar procesas šiuo metu veikia:
$ sudo systemctl status mysql $ sudo service apache2 status
Kurpiam mygtuką
Aišku, terminalas valdo, tačiau patogumo dėlei nusprendžiau paleidimą realizuoti per launcher‘io mygtuką. Paspaudi – ir abu servisai startuoja.
Failų naršyklėje einam į ~/.local/share/applications , spaudžiam dešiniu pelės klavišu kur nors tuščioje vietoje ir pasirenkam Create starter:

Neatsimenu, ar šis funkcionalumas yra bazinėje Ubuntu instaliacijoje – greičiausia aš kažkada esu papildomai įsidiegęs Arronax:

Užpildom nustatymų laukelius (čia galit improvizuoti):
Title : (Re)start Apache and MySQL
Command : /home/user/bin/lamp-start
pastarasis yra kelias iki bash skripto. Skriptą netrukus parašysim (aišku, kad aš visą šitą „muziką“ pradėjau būtent nuo jo). Užpildytų laukelių vaizdas bus kiek žemiau, o dabar
Ikona
Kad būtų visai gražu, nusprendžiau greitai sumesti ikonkę: internete susiradau vektorinį krumpliaratį ir apačės plunksną, tiap-liap vieną ant kito Inkscape‘je ir štai ką turim:
Ikoną išsaugojau kaip ~/bin/lamp-start.svg. Išsaugom ir uždarom Arronax‘o starter‘į

nutempiam jį iš failų naršyklės tiesiai į reikiamą poziciją tarp kitų mygtukų:

Programinė dalis
Rašom bash’o skriptą:
#!/bin/bash gksudo -- sh -c 'service apache2 restart; systemctl restart mysql' status_mysql=`systemctl status mysql | grep Active: | cut -d ':' -f 2 | cut -d ' ' -f 2,3` status_apache=`service apache2 status | grep Active: | cut -d ':' -f 2 | cut -d ' ' -f 2,3` message="MySQL $status_mysql\nApache $status_apache\n" printf "$message" notify-send -i "/home/user/bin/lamp-start.svg" "Apache & MySQL restart" "$message"
Paaiškinimai
gksudo...kadangi komandas leisim iš grafinės aplinkos, tai vietoj sudo naudojam gksudo.restartpaleis procesą net jei jis nebuvo paleistas, todėl man pasirodė universalesnis už paprastąstartstatus...leidžiam komandą, kuri parodo serviso būklę; „iškerpam“ reikšminius žodžius; priskiriam kintamajam – būklės tekstą naudosime pranešimuosemessage...paruošiam pranešimo tekstąprintf...matom pranešimo tekstą kai komandą leidžiam konsolėje (vėliau šią eilutę galima ištrinti/užkomentuoti)notify-send...rodom pranešimą darbalaukyje. Čia gal papasakosiu detaliau:- raktas
-ileidžia nurodyti naudojamą paveiksliuką - pirmas tekstinis parametras bus naudojamas antraštei
- antras – pranešimo turiniui
- raktas
Failą išsaugom kaip ~/bin/lamp-start ir suteikiam vykdymo atributą
$ chmod u+x ~/bin/lamp-start
Rezultatas
Testuojam: spaudžiam launcher‘io mygtuką ir (po kelių sekundžių, kai servisų (pa/per)leidimo procesas baigtas) matom rezultatą:

Patobulinimai
Kaip ir viskas. Bet dar nusprendžiau mygtuko kontekstiniame meniu realizuoti servisų perkrovimą atskirai (labai retai, bet prireikia).
Redaguojam paleidėją
$ arronax ~/.local/share/applications/\(Re\)start\ Apache\ and\ MySQL.desktop
Quicklist tab‘e pridedam vieną ar kelias komandas

išsaugom; uždarom. Dabar paspaudus dešiniu palės klavišu turim papildomų komandų:

Kai reikia tik būklės
Dar pastebėjau tokį lifehack‘ą: paspaudus launcher‘io mygtuką yra klausiama superuser‘io slaptažodžio. Tada galime atšaukti – paspausti Cancel ir serviso perkrovimo komandos nebus vykdomos. Tačiau bus įvykdytos likusios – parodys servisų būklę darbalaukio pranešime. Patogu :)