Înainte de a începe această secțiune trebuie să vă asigurați că sunteți în directorul potrivit. Rulați comanda
cd ~/uso-lab/07-inspect/support/nice-to-know
.
În secțiunea anterioară am învățat cum să afișăm serviciile disponibile în sistem și să aflăm statusul curent al unui serviciu.
Ne propunem să adugăm un serviciu nou în cadrul sistemului. Vom folosi un fișier de configurare deja existent.
student@uso:~/.../07-inspect/support/nice-to-know$ cat example.service [Unit] Description=example [Service] ExecStart=/usr/bin/python3 -m http.server 8000 Type=simple User=student Group=student WorkingDirectory=/home/student [Install] WantedBy=multi-user.target
Fișierul de configurare de mai sus este organizat în secțiuni: [Unit], [Service], [Install].
Description
- Descrierea componenteiExecStart
- Comanda Bash care pornește serviciulType
- tipul serviciului, mai multe detalii aiciUser
- utilizatorul asociat cu procesul serviciuluiGroup
- grupul asociat cu procesul serviciuluiWorkingDirectory
- directorul asociat cu procesul serviciuluiWantedBy
- este folosit pentru a specifica dacă serviciul este sau nu activat.Mai multe informații se pot găsi aici.
Copiem fișierul de configurare în directorul /etc/systemd/system/
și adăugăm permisiunea de execuție.
student@uso:~/.../07-inspect/support/nice-to-know$ sudo cp example.service /etc/systemd/system/ student@uso:~/.../07-inspect/support/nice-to-know$ sudo chmod +x /etc/systemd/system/example.service
Activăm și pornim serviciul:
student@uso:~/.../07-inspect/support/nice-to-know$ sudo systemctl enable example student@uso:~/.../07-inspect/support/nice-to-know$ sudo systemctl start example
Pentru a testa funcționalitatea serviciului, deschidem un browser și navigăm la URL-ul http://localhost:8000
. Observăm că am pornit un server web care afișează conținutul directorului /home/student
.
student@uso:~$ sudo systemctl daemon-reload
Exerciții
.zip
cu conținutul directorului /home/student/uso-lab/
.backupuso
. Asigurați-vă că acest utilizator nu are un director home asociat./home/student/uso-lab/
la fiecare două minute (citiți secțiunea următoare). Serviciul trebuie să aiba asociat utilizatorul creat la punctul precedent.
Ne dorim să realizăm diferite acțiuni în cadrul sistemului la anumite momente de timp. Pentru a rezolva această problemă putem să folosim daemonul cron
.
student@uso:~$ ps -f $(pidof cron) UID PID PPID C STIME TTY STAT TIME CMD root 563 1 0 07:47 ? Ss 0:00 /usr/sbin/cron -f
Daemonul cron
poate executa, la anumite momente de timp, programe sau script-uri configurate de un utilizator. Pentru configurarea listelor folosite de daemonul cron
vom folosi utilitarul crontab
.
Sintaxa folosită pentru a configura daemon-ul cron
urmărește următoarea sintaxă:
Pentru a configura un program să se execute la un anumit interval de timp folosim comanda:
student@uso:~$ crontab -e
Dacă vrem să adăugăm data curentă la sfârșitul fișierului date_logs.log
din directorul /var/log/
la fiecare 5 minute, introducem următoarea linie:
*/5 * * * * date >> /var/log/date_logs.log
Exerciții
cron
care să înregistreze la fiecare două minute numărul de procese executate de utilizatorul student
. Fiecare execuție, va adăuga un număr la sfârșitul fișierului n_processes.log
din directorul /var/log/
.cron
rulate de toți utilizatorii din sistem. Pentru fiecare job se vor afișa: numele utilizatorului și comanda rulată.