Iga protsess omab unikaalset numbrit.
Protsess saab luua uut protsessi.
Esimene protsess PID=1 on nimega init.
Protsessid kirjeldatakse süsteemi protsesside tabelis.
Igat protsessi kirjeldab infoblokk:
Protsesse saab vaadata käsuga ps
$ ps
K äivitame otsingu protsessi tagaplaanil(background) lisades rea lõppu sümboli &
grep -R "otsimemidagi" /&
[1] 21488
vaatame üle jooksvaid ülesandeid
$ jobs
[1]+ Running grep -R "otsimemidagi" / &
$ fg %1 # tõmbame protsessi esiplaanile
Käivitame protsessi muudetud prioriteediga:
nice -n 10 grep -R "otsimemidagi" /
vajutame Ctrl-Z, sellega peatame protsessi
^Z
[1]+ Stopped nice -n 10 grep -R "otsimemidagi" /
$ bg %1 # tõmbame protsessi tagaplaanile
[1]+ nice -n 10 grep -R "otsimemidagi" / &
$ kill %1 # Termineerime protsessi
$ jobs # Vaatame ülesandeid
[1]+ Terminated nice -n 10 grep -R "otsimemidagi" /
$ kill -9 %1 # Termineerime protsessi SIGKILL signaaliga
$ jobs # Vaatame ülesandeid
[1]+ Killed nice -n 10 grep -R "otsimemidagi" /
Protsessi prioriteeti käivitamisel saab muuta käsuga:
$ nice -n -10 grep -R "otsimemidagi" /& # vähendame prioriteeti
$ nice -n 10 grep -R "otsimemidagi" /& # suurendameprioriteeti
Normaalne prioriteet käivitamisel on 0. Kui number -n parameetri taga käsus nice on positiivne siis prioriteet suurendatakse ja see tähendab et selle täitmisele eraldatakse rohkem protsessori aega ja toimingule võib kuluda vähem aega. Ja vastupidi.
Näiteks:
$ nice -n 10 grep -R "otsimemidagi" /&
[1] 21488
Kontrollime:
$ ps -o pid,rtprio,ni,pri,pcpu,stat,comm
PID RTPRIO NI PRI %CPU STAT COMMAND
10650 - 0 19 0.0 Ss bash
21488 - 10 9 1.1 DN grep
21492 - 0 19 0.0 R+ ps
Muudame protsessi prioriteeti käigu peal:
$ renice -20 21488
21488: old priority 10, new priority -20
Kontrollime:
$ ps -o pid,rtprio,ni,pri,pcpu,stat,comm
PID RTPRIO NI PRI %CPU STAT COMMAND
10650 - 0 19 0.0 Ss bash
21488 - -20 39 2.0 D< grep
21563 - 0 19 0.0 R+ ps
------------------------------
#!/bin/bash
# traptest.sh
trap "echo 'Ei taha peatuda!'" SIGINT SIGTERM
echo "pid is $$"
while : # This is the same as "while true".
do
sleep 60 # This script is not really doing anything.
done
------------------------------
$ ./traptest.sh
pid is 23454
Ctrl-C # proovime peatada programmi signaaliga SIGINT
^CEi taha peatuda!
Ctrl-Z
[1]+ Stopped ./traptest.sh
$ kill %1 # proovime peatada programmi signaaliga SIGTERM
Terminated
Ei taha peatuda!
$ kill -9 %1 # proovime peatada programmi signaaliga SIGKILL
[1]+ Killed ./traptest.sh
Nüüd saime programmi peatada.