M06-Administració de Sistemes Operatius
UF1-Administració avançada de sistemes operatius ASIX2
Pràctica 4:  Processos en 1r / 2n pla.  Iniciació de serveis durant  l'arrencada del sistema. 28-1-2022

PROCESSOS EN 1r / 2n PLA. INICIACIÓ DE SERVEIS DURANT L'ARRENCADA DEL SISTEMA

CONDICIONS DEL TREBALL

1- Inici de la data de comprovació: 28-01-2022
2- Comprovacions: PART 1
 
DOCUMENTACIÓ
a) How to change default runlevel in Debian 10 / Debian 9
b) SystemD Services
c) How to change runlevels (targets) in SystemD
d) Executing background and foreground commands

PRÀCTICA


PART 1
- Afegint  un servei al sistema des del principi

1.-
Instal·lació del servei:
    a) Descarrega i compila  echod.c.  Comprova que pots  compilar echod.c executant l'ordre:  gcc -O echod.c -o echod. Un nou executable de nom echod serà creat. És un programa servidor que:
    b) Canvia el codi font per fer que escolti pel port 9998/tcp. Torna a compilar el programa.

    c) Amb privilegis de root, copia echod dins de  /usr/sbin.
  
    d)
Descarrega  myservice.service. Canvia el nom del fitxer a echod.service. Edita el contingut de echod.service i fes els següents canvis:
         Primera línia -->
# Contingut de /etc/systemd/system/echod.service
         Description=Servei Echod
         ExecStart=/usr/sbin/echod

    e) Copia echod.service dins de  /etc/systemd/system

    f)
Habilita el servei. Executa les següents ordres amb privilegis de root:
        systemctl  daemon-reload
        systemctl  enable  echod.service

    g) Inicia el servei echod executant amb privilegis de
root:
        systemctl  start  echod.service

    h)
Comprova l'estat de servei echod executant:
   
    systemctl  status  echod.service

2.-
Comprova que pots aturar/iniciar/reiniciar  el servei amb l'ordre systemctl.

3.-
Comprova amb l'ordre sudo  netstat  -atupn  que si el servei echod.service està actiu, hi ha un programa en execució que escolta pel port 9998/tcp.

4.-
Comprova que el servei està habilitat (és a dir, si reinicies l'ordinador, el servei es posa en marxa automàticament). Executa: sysemctl list-unit-files | grep echod

5.-
El programa és un servidor que fa un eco (repeteix) de qualsevol cadena de caracters enviada pel client. No existeix un client i per comprovar el seu funcionament s'ha d'utilitzar el programa telnet. Connecta-t'hi des de  la màquina host via client telnet (si no ho tens, instala-ho). Comprova el seu funcionament.


PART 2
1.- Afegeix un segon disc dur a la teva màquina virtual de pràctiques del M06UF1 de 20GB, de nom pr4.vdi, de tipus dinàmic i connectada al port SATA1.
2.- Inicia el sistema. Obre un terminal i executa l'ordre sudo  dd  if=/dev/sda  of=/dev/sdb per clonar el disc del sistema en el nou disc dur.
3.- Atura el procés iniciat a l'apartat 2. Recorda que aturar no és terminar.
4.- Inicia un altre procés executant l'ordre dd  if=/dev/zero  of=/dev/null  bs=1M
5.- Atura el procés iniciat a l'apartat 4. Recorda que aturar no és terminar.
6- Mostra l'estat dels processos iniciats als apartats 2 i 4 executant:  ps aux  |  grep  "dd if="  |  grep  -v  grep. Com comproves que estan aturats?.
7.- Envia a segon pla (background) el procés aturat a l'apartat 3.
8.- Envia a segon pla (background) el procés aturat a l'apartat 5.
9- Fes una llista de processos enviats al segon pla amb l'odre job -l
Comprova els seus número de tasca i els seus  PID del procés.
Estan aturats o en execució?.
10.- Finalitza el procés que vas iniciar a la pregunta 4 utilitzant el seu número de tasca i enviant la senyal SIGTERM (o SIGKILL si el procés ignora SIGTERM).
11- Fes una llista de processos enviats al segon pla amb l'odre job -l Comprova que has terminat el procés de l'apartat 4.


PART 3
1.- Inicia un terminal. Executa l'ordre sudo dd if=/dev/sda  of=/dev/sdb bs=1M & per clonar el disc del sistema en el nou disc dur i comprova que s'executa en 2n terme.
2.- Inicia un altre terminal i executa l'ordre dd  if=/dev/zero  of=/dev/null  bs=1M & i comprova que s'executa en 2n terme.
3.- Mostra l'estat dels processos iniciats als apartats 1 i 2 executant:  ps aux  |  grep  "dd if="  |  grep  -v  grep. Estan aturats o en execució?.
4.- Fes una llista de processos enviats al segon pla amb l'odre job -l. Estan aturats o en execució?.
5.- Envia a primer pla (foreground) el procés iniciat a l'apartat 1.
6.- Termina el procés iniciat a l'apartat 1 utilitzant el senyal SIGINT.
7.- Envia a primer pla (foreground) el procés iniciat a l'apartat 2.
8.- Torna a enviar segon pla (background) el procés iniciat a l'apartat 2.
9.- Termina el procés iniciat a l'apartat 2 utilitzant el senyal SIGTERM (o SIGKILL si el procés ignora SIGTERM).
10.- Comprova que no resta cap procés executant-se en 2n terme amb jobs -l.