<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.itcollege.ee/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hpaves</id>
	<title>ICO wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.itcollege.ee/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hpaves"/>
	<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php/Special:Contributions/Hpaves"/>
	<updated>2026-05-08T23:08:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=SSHFS&amp;diff=131310</id>
		<title>SSHFS</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=SSHFS&amp;diff=131310"/>
		<updated>2018-06-05T09:12:54Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SSHFS&#039;&#039;&#039; on failisüsteemiklient mis lubab SSH protokollile toetudes haakida kaug-kaustu.&lt;br /&gt;
&lt;br /&gt;
== Eeldused ==&lt;br /&gt;
Antud artikkel eeldab, et kasutaja teab mis on SSH ning oskab võtmefaili abil kaugühenduda. Lisaks oleks hea teada mis on haakimine. Kurssi viimiseks saab lugeda artikleid [https://wiki.itcollege.ee/index.php/OpenSSH:_v%C3%B5tmetega_autentimine OpenSSH: võtmega autentimine] ja [https://wiki.itcollege.ee/index.php/Mount Mount].&lt;br /&gt;
&lt;br /&gt;
== Vajalik tarkvara ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
Linuxi all läheb vaja programmi sshfs. Selle paigaldamine Debianil baseeruvates linuxites:&lt;br /&gt;
 sudo apt update &amp;amp;&amp;amp; sudo apt install sshfs &amp;amp;&amp;amp; sudo apt clean&lt;br /&gt;
&lt;br /&gt;
== Haakimine ==&lt;br /&gt;
Kui kasutaja on kursis SSH ja haakimisega, siis on üle SSH haakimise süntaks vägagi intuitiivne.&lt;br /&gt;
 sshfs kasutaja@kuhutahanyhenduda.ee:/kaust/mida/yhendan /haakepunkt/kuhu/yhendan&lt;br /&gt;
&lt;br /&gt;
Lahtihaakimiseks&lt;br /&gt;
 fusermount -u /haakepunkt/kuhu/yhendatud&lt;br /&gt;
&lt;br /&gt;
== Probleemid ==&lt;br /&gt;
Katsetamisel esines selline probleem, et haagitud kaust pani hanguma programmid millega üritasin vaadata kausta, kus haakepunkt asus. Hangusid nii Nemo, kui ka terminal. Viimane küll vaid juhul, kui üritasid tab&#039;i kasutades failinime lõpetada. Muudes kaustades sai vabalt liigelda. Selline olukord tekkis, kui sülearvuti oli olnud mõnda aega uneseisundis, aga tegu võis olla ka muude faktoritega. Kõige tõenäolisemalt on hangumise põhjuseks võrguühenduse katkemine&amp;lt;ref name=&amp;quot;gr&amp;quot;&amp;gt;[https://ubuntuforums.org/showthread.php?t=430312 SSHFS AUTOmount on Feisty]&amp;lt;/ref&amp;gt;. Kui selline olukord tekkis, tapsin &amp;quot;sshfs&amp;quot; nimelise protsessi ja sain seejärel seadme lahti haakida. Protsesside tapmisest loe lähemalt artiklist [https://wiki.itcollege.ee/index.php/Signaalid_ja_kill Signaalid ja kill]. Katsed kinnitavad, et probleemiks on võrguühenduse katkemine.&lt;br /&gt;
&lt;br /&gt;
== Haakimine käivitamisel&amp;lt;ref name=&amp;quot;gr&amp;quot;&amp;gt;[https://ubuntuforums.org/showthread.php?t=430312 SSHFS AUTOmount on Feisty]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
=== /etc/fstab ja /etc/fuse.conf ===&lt;br /&gt;
Esiteks tuleb lisada /etc/fstab faili kirje:&lt;br /&gt;
 sshfs#kasutaja@kuhutahanyhenduda.ee:/kaust/mida/yhendan   /haakepunkt/kuhu/yhendan    fuse    comment=sshfs,noauto,users,exec,uid=1000,gid=1000,allow_other,reconnect,transform_symlinks,BatchMode=yes 0 0&lt;br /&gt;
&lt;br /&gt;
Kokkuvõtvalt kasutame sama süntaksit, mida käsurealt haakimisel ainukese vahega, et prefiks &amp;quot;sshfs#&amp;quot; näitab ära failisüsteemi tüübi.&lt;br /&gt;
&lt;br /&gt;
==== Parameetrid ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;comment=sshfs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lihtsalt kommentaar. Seda läheb hiljem skriptis vaja. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;users&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lubab failisüsteemi tavakasutajana haakida. Probleemi korral ei pea alati adminn sekkuma.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;uid&#039;&#039; ja &#039;&#039;gid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Need kaks parameetrit on vajalikud, sest automaatse haakimise puhul ei käivita haakimisprogrammi mitte kasutaja, vaid süsteem. Kasutades neid parameetreid, anname süsteemile teada kes on kausta omanik. Oma uid ja gid saad teada, trükkides terminali &amp;quot;id&amp;quot;. Kasuta enda numbreid, mitte näites antud numbreid.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;noauto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Keelab failisüsteemi haakimise operatsioonisüsteemi käivumisel, sest võrguühendus pole sel hetkel veel üleval.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;BatchMode=yes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ütleb sshfs protsessile, et ärgu parooli küsigu, sest automaatse haakimise skript seda sisse trükkima ei hakka. Kasuta võtmetega autentimist.&lt;br /&gt;
Teiseks lubab see parameeter ssh ühenduse jõudeseisundit. Ilma selleta haagitaks kaust lahti, kui seal mõnda aega liiklust ei toimu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Järgnevaks ava fail /etc/fuse.conf (loo see fail, kui seda ei eksisteeri) ja lisa sinna järgmine rida:&lt;br /&gt;
 user_allow_other&lt;br /&gt;
&lt;br /&gt;
=== /etc/fstab haakimise testimine ===&lt;br /&gt;
 mount /haakepunkt/kuhu/yhendan&lt;br /&gt;
&lt;br /&gt;
Ja vaata kas kaustale tekib sisu.&lt;br /&gt;
&lt;br /&gt;
=== Automaatne haakimine ===&lt;br /&gt;
Normaalse kasutamise saavutamiseks on vajalik, et kaust võrguühenduse kadumisel lahti haagitakse, ja võrguühenduse taastumise korral tagasi külge haagitakse.&lt;br /&gt;
&lt;br /&gt;
Arvutis peaksid olema kaustad nimega &#039;&#039;/etc/network/if-up.d&#039;&#039; ja &#039;&#039;/etc/network/if-down.d&#039;&#039;. Nende sees olevad skriptid käivitatakse vastavalt kas siis kui arvuti võrku ühendub, või võrguühenduse kaotab. Loo administraatoriõigustes kaks faili: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/network/if-up.d/mountsshfs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 ## http://ubuntuforums.org/showthread.php?t=430312&lt;br /&gt;
 ## The script will attempt to mount any fstab entry with an option&lt;br /&gt;
 ## &amp;quot;...,comment=$SELECTED_STRING,...&amp;quot;&lt;br /&gt;
 ## Use this to select specific sshfs mounts rather than all of them.&lt;br /&gt;
 SELECTED_STRING=&amp;quot;sshfs&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Not for loopback&lt;br /&gt;
 [ &amp;quot;$IFACE&amp;quot; != &amp;quot;lo&amp;quot; ] || exit 0&lt;br /&gt;
 &lt;br /&gt;
 ## define a number of useful functions&lt;br /&gt;
 &lt;br /&gt;
 ## returns true if input contains nothing but the digits 0-9, false otherwise&lt;br /&gt;
 ## so realy, more like isa_positive_integer &lt;br /&gt;
 isa_number () {&lt;br /&gt;
     ! echo $1 | egrep -q &#039;[^0-9]&#039;&lt;br /&gt;
     return $?&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 ## returns true if the given uid or username is that of the current user&lt;br /&gt;
 am_i () {&lt;br /&gt;
 	[ &amp;quot;$1&amp;quot; = &amp;quot;`id -u`&amp;quot; ] || [ &amp;quot;$1&amp;quot; = &amp;quot;`id -un`&amp;quot; ]&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 ## takes a username or uid and finds it in /etc/passwd&lt;br /&gt;
 ## echoes the name and returns true on success&lt;br /&gt;
 ## echoes nothing and returns false on failure &lt;br /&gt;
 user_from_uid () {&lt;br /&gt;
     if isa_number &amp;quot;$1&amp;quot;&lt;br /&gt;
     then&lt;br /&gt;
 		# look for the corresponding name in /etc/passwd&lt;br /&gt;
     	local IFS=&amp;quot;:&amp;quot;&lt;br /&gt;
     	while read name x uid the_rest&lt;br /&gt;
     	do&lt;br /&gt;
         	if [ &amp;quot;$1&amp;quot; = &amp;quot;$uid&amp;quot; ]&lt;br /&gt;
 			then &lt;br /&gt;
 				echo &amp;quot;$name&amp;quot;&lt;br /&gt;
 				return 0&lt;br /&gt;
 			fi&lt;br /&gt;
     	done &amp;lt;/etc/passwd&lt;br /&gt;
     else&lt;br /&gt;
     	# look for the username in /etc/passwd&lt;br /&gt;
     	if grep -q &amp;quot;^${1}:&amp;quot; /etc/passwd&lt;br /&gt;
     	then&lt;br /&gt;
     		echo &amp;quot;$1&amp;quot;&lt;br /&gt;
     		return 0&lt;br /&gt;
     	fi&lt;br /&gt;
     fi&lt;br /&gt;
     # if nothing was found, return false&lt;br /&gt;
    	return 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 ## Parses a string of comma-separated fstab options and finds out the &lt;br /&gt;
 ## username/uid assigned within them. &lt;br /&gt;
 ## echoes the found username/uid and returns true if found&lt;br /&gt;
 ## echoes &amp;quot;root&amp;quot; and returns false if none found&lt;br /&gt;
 uid_from_fs_opts () {&lt;br /&gt;
 	local uid=`echo $1 | egrep -o &#039;uid=[^,]+&#039;`&lt;br /&gt;
 	if [ -z &amp;quot;$uid&amp;quot; ]; then&lt;br /&gt;
 		# no uid was specified, so default is root&lt;br /&gt;
 		echo &amp;quot;root&amp;quot;&lt;br /&gt;
 		return 1&lt;br /&gt;
 	else&lt;br /&gt;
 		# delete the &amp;quot;uid=&amp;quot; at the beginning&lt;br /&gt;
 		uid_length=`expr length $uid - 3`&lt;br /&gt;
 		uid=`expr substr $uid 5 $uid_length`&lt;br /&gt;
 		echo $uid&lt;br /&gt;
 		return 0&lt;br /&gt;
 	fi&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # unmount all shares first&lt;br /&gt;
 sh &amp;quot;/etc/network/if-down.d/umountsshfs&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 while read fs mp type opts dump pass extra&lt;br /&gt;
 do&lt;br /&gt;
     # check validity of line&lt;br /&gt;
     if [ -z &amp;quot;$pass&amp;quot; -o -n &amp;quot;$extra&amp;quot; -o &amp;quot;`expr substr ${fs}x 1 1`&amp;quot; = &amp;quot;#&amp;quot; ]; &lt;br /&gt;
     then&lt;br /&gt;
         # line is invalid or a comment, so skip it&lt;br /&gt;
         continue&lt;br /&gt;
     &lt;br /&gt;
     # check if the line is a selected line&lt;br /&gt;
     elif echo $opts | grep -q &amp;quot;comment=$SELECTED_STRING&amp;quot;; then&lt;br /&gt;
     	&lt;br /&gt;
     	# get the uid of the mount&lt;br /&gt;
         mp_uid=`uid_from_fs_opts $opts`&lt;br /&gt;
         &lt;br /&gt;
         if am_i &amp;quot;$mp_uid&amp;quot;; then&lt;br /&gt;
 			# current user owns the mount, so mount it normally&lt;br /&gt;
 			{ sh -c &amp;quot;mount $mp&amp;quot; &amp;amp;&amp;amp; &lt;br /&gt;
 				echo &amp;quot;$mp mounted as current user (`id -un`)&amp;quot; || &lt;br /&gt;
 				echo &amp;quot;$mp failed to mount as current user (`id -un`)&amp;quot;; &lt;br /&gt;
 			} &amp;amp;&lt;br /&gt;
 		elif am_i root; then&lt;br /&gt;
 			# running as root, so sudo mount as user&lt;br /&gt;
 			if isa_number &amp;quot;$mp_uid&amp;quot;; then&lt;br /&gt;
 				# sudo wants a &amp;quot;#&amp;quot; sign icon front of a numeric uid&lt;br /&gt;
 				mp_uid=&amp;quot;#$mp_uid&amp;quot;&lt;br /&gt;
 			fi &lt;br /&gt;
 			{ sudo -u &amp;quot;$mp_uid&amp;quot; sh -c &amp;quot;mount $mp&amp;quot; &amp;amp;&amp;amp; &lt;br /&gt;
 				echo &amp;quot;$mp mounted as $mp_uid&amp;quot; || &lt;br /&gt;
 				echo &amp;quot;$mp failed to mount as $mp_uid&amp;quot;; &lt;br /&gt;
 			} &amp;amp;&lt;br /&gt;
 		else&lt;br /&gt;
 			# otherwise, don&#039;t try to mount another user&#039;s mount point&lt;br /&gt;
 			echo &amp;quot;Not attempting to mount $mp as other user $mp_uid&amp;quot;&lt;br /&gt;
 		fi&lt;br /&gt;
     fi&lt;br /&gt;
     # if not an sshfs line, do nothing&lt;br /&gt;
 done &amp;lt;/etc/fstab&lt;br /&gt;
 &lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/network/if-down.d/umountsshfs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 # Not for loopback!&lt;br /&gt;
 [ &amp;quot;$IFACE&amp;quot; != &amp;quot;lo&amp;quot; ] || exit 0&lt;br /&gt;
 &lt;br /&gt;
 # comment this for testing&lt;br /&gt;
 exec 1&amp;gt;/dev/null # squelch output for non-interactive&lt;br /&gt;
 &lt;br /&gt;
 # umount all sshfs mounts&lt;br /&gt;
 mounted=`grep &#039;fuse.sshfs\|sshfs#&#039; /etc/mtab | awk &#039;{ print $2 }&#039;`&lt;br /&gt;
 [ -n &amp;quot;$mounted&amp;quot; ] &amp;amp;&amp;amp; { for mount in $mounted; do umount -l $mount; done; }&lt;br /&gt;
&lt;br /&gt;
Siis anna mõlemale failile käivitusõigused ja sea nende omanikuks root:&lt;br /&gt;
 sudo chmod 755 /etc/network/if-up.d/mountsshfs /etc/network/if-down.d/umountsshfs&lt;br /&gt;
 sudo chown root:root /etc/network/if-up.d/mountsshfs /etc/network/if-down.d/umountsshfs&lt;br /&gt;
&lt;br /&gt;
Nüüd peaks kõik ilusasti töötama.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
Ehkki esmapilgul tundub SSHFS tööle saamine väga pikk ja keeruline protsess, siis tegelikult oli see üpriski lihtne. Vähemalt senikaua kuni antud automaatse haakimise-lahtihaakimise skriptid töötavad. &lt;br /&gt;
&lt;br /&gt;
Lahendus on elgantne ja kordades mugavam kui pidevalt läbi SFTP ühenduda. Samas selle artikli põhiallikaks olev Ubuntu foorumi postitus väidab, et SSHFS kahjuks suuremahuliste andmete ülekandmiseks, varudamiseks ja muudeks suure koormusega tegevusteks siiski hästi ei sobi, kuna kipub taolistes olukordades ebastabiilseks.&lt;br /&gt;
&lt;br /&gt;
== Autorid ==&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2018, v1.0&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
[[Category:Andmesalvestustehnoloogiad]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=SSHFS&amp;diff=130931</id>
		<title>SSHFS</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=SSHFS&amp;diff=130931"/>
		<updated>2018-05-28T16:51:50Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SSHFS&#039;&#039;&#039; on failisüsteemiklient mis lubab SSH protokollile toetudes haakida kaug-kaustu.&lt;br /&gt;
&lt;br /&gt;
== Eeldused ==&lt;br /&gt;
Antud artikkel eeldab, et kasutaja teab mis on SSH ning oskab võtmefaili abil kaugühenduda. Lisaks oleks hea teada mis on haakimine. Kurssi viimiseks saab lugeda artikleid [https://wiki.itcollege.ee/index.php/OpenSSH:_v%C3%B5tmetega_autentimine OpenSSH: võtmega autentimine] ja [https://wiki.itcollege.ee/index.php/Mount Mount].&lt;br /&gt;
&lt;br /&gt;
== Vajalik tarkvara ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
Linuxi all läheb vaja programmi sshfs. Selle paigaldamine Debianil baseeruvates linuxites:&lt;br /&gt;
 apt install sshfs&lt;br /&gt;
&lt;br /&gt;
== Haakimine ==&lt;br /&gt;
Kui kasutaja on kursis SSH ja haakimisega, siis pole üle SSH haakimise süntaks vägagi intuitiivne.&lt;br /&gt;
 sshfs kasutaja@kuhutahanyhenduda.ee:/kaust/mida/yhendan /haakepunkt/kuhu/yhendan&lt;br /&gt;
&lt;br /&gt;
Lahtihaakimiseks&lt;br /&gt;
 fusermount -u /haakepunkt/kuhu/yhendatud&lt;br /&gt;
&lt;br /&gt;
== Probleemid ==&lt;br /&gt;
Katsetamisel esines selline probleem, et haagitud kaust pani hanguma programmid millega üritasin vaadata kausta, kus haakepunkt asus. Hangusid nii Nemo, kui ka terminal. Viimane küll vaid juhul, kui üritasid tab&#039;i kasutades failinime lõpetada. Muudes kaustades sai vabalt liigelda. Selline olukord tekkis, kui sülearvuti oli olnud mõnda aega uneseisundis, aga tegu võis olla ka muude faktoritega. Kõige tõenäolisemalt on hangumise põhjuseks võrguühenduse katkemine&amp;lt;ref name=&amp;quot;gr&amp;quot;&amp;gt;[https://ubuntuforums.org/showthread.php?t=430312 SSHFS AUTOmount on Feisty]&amp;lt;/ref&amp;gt;. Kui selline olukord tekkis, tapsin &amp;quot;sshfs&amp;quot; nimelise protsessi ja sain seejärel seadme lahti haakida. Protsesside tapmisest loe lähemalt artiklist [https://wiki.itcollege.ee/index.php/Signaalid_ja_kill Signaalid ja kill]. Katsed kinnitavad, et probleemiks on võrguühenduse katkemine.&lt;br /&gt;
&lt;br /&gt;
== Haakimine käivitamisel&amp;lt;ref name=&amp;quot;gr&amp;quot;&amp;gt;[https://ubuntuforums.org/showthread.php?t=430312 SSHFS AUTOmount on Feisty]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
=== /etc/ftsab ja /etc/fuse.conf ===&lt;br /&gt;
Esiteks tuleb lisada /etc/fstab faili kirje:&lt;br /&gt;
 sshfs#kasutaja@kuhutahanyhenduda.ee:/kaust/mida/yhendan   /haakepunkt/kuhu/yhendan    fuse    comment=sshfs,noauto,users,exec,uid=1000,gid=1000,allow_other,reconnect,transform_symlinks,BatchMode=yes 0 0&lt;br /&gt;
&lt;br /&gt;
Kokkuvõtvalt kasutame sama süntaksit, mida käsurealt haakimisel ainukese vahega, et prefiks &amp;quot;sshfs#&amp;quot; näitab ära failisüsteemi tüübi.&lt;br /&gt;
&lt;br /&gt;
==== Parameetrid ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;comment=sshfs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lihtsalt kommentaar. Seda läheb hiljem skriptis vaja. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;users&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lubab failisüsteemi tavakasutajana haakida. Probleemi korral ei pea alati adminn sekkuma.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;uid&#039;&#039; ja &#039;&#039;gid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Need kaks parameetrit on vajalikud, sest automaatse haakimise puhul ei käivita haakimisprogrammi mitte kasutaja, vaid süsteem. Kasutades neid parameetreid, anname süsteemile teada kes on kausta omanik. Oma uid ja gid saad teada, trükkides terminali &amp;quot;id&amp;quot;. Kasuta enda numbreid, mitte näites antud numbreid.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;noauto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Keelab failisüsteemi haakimise operatsioonisüsteemi käivumisel, sest võrguühendus pole sel hetkel veel üleval.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;BatchMode=yes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ütleb sshfs protsessile, et ärgu parooli küsigu, sest automaatse haakimise skript seda sisse trükkima ei hakka. Kasuta võtmetega autentimist.&lt;br /&gt;
Teiseks lubab see parameeter ssh ühenduse jõudeseisundit. Ilma selleta haagitaks kaust lahti, kui seal mõnda aega liiklust ei toimu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Järgnevaks ava fail /etc/fuse.conf (loo see fail, kui seda ei eksisteeri) ja lisa sinna järgmine rida:&lt;br /&gt;
 user_allow_other&lt;br /&gt;
&lt;br /&gt;
=== /etc/fstab haakimise testimine ===&lt;br /&gt;
 mount /haakepunkt/kuhu/yhendan&lt;br /&gt;
&lt;br /&gt;
Ja vaata kas kaustale tekib sisu.&lt;br /&gt;
&lt;br /&gt;
=== Automaatne haakimine ===&lt;br /&gt;
Normaalse kasutamise saavutamiseks on vajalik, et kaust võrguühenduse kadumisel lahti haagitakse, ja võrguühenduse taastumise korral tagasi külge haagitakse.&lt;br /&gt;
&lt;br /&gt;
Arvutis peaksid olema kaustad nimega &#039;&#039;/etc/network/if-up.d&#039;&#039; ja &#039;&#039;/etc/network/if-down.d&#039;&#039;. Nende sees olevad skriptid käivitatakse vastavalt kas siis kui arvuti võrku ühendub, või võrguühenduse kaotab. Loo administraatoriõigustes kaks faili: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/network/if-up.d/mountsshfs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 ## http://ubuntuforums.org/showthread.php?t=430312&lt;br /&gt;
 ## The script will attempt to mount any fstab entry with an option&lt;br /&gt;
 ## &amp;quot;...,comment=$SELECTED_STRING,...&amp;quot;&lt;br /&gt;
 ## Use this to select specific sshfs mounts rather than all of them.&lt;br /&gt;
 SELECTED_STRING=&amp;quot;sshfs&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Not for loopback&lt;br /&gt;
 [ &amp;quot;$IFACE&amp;quot; != &amp;quot;lo&amp;quot; ] || exit 0&lt;br /&gt;
 &lt;br /&gt;
 ## define a number of useful functions&lt;br /&gt;
 &lt;br /&gt;
 ## returns true if input contains nothing but the digits 0-9, false otherwise&lt;br /&gt;
 ## so realy, more like isa_positive_integer &lt;br /&gt;
 isa_number () {&lt;br /&gt;
     ! echo $1 | egrep -q &#039;[^0-9]&#039;&lt;br /&gt;
     return $?&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 ## returns true if the given uid or username is that of the current user&lt;br /&gt;
 am_i () {&lt;br /&gt;
 	[ &amp;quot;$1&amp;quot; = &amp;quot;`id -u`&amp;quot; ] || [ &amp;quot;$1&amp;quot; = &amp;quot;`id -un`&amp;quot; ]&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 ## takes a username or uid and finds it in /etc/passwd&lt;br /&gt;
 ## echoes the name and returns true on success&lt;br /&gt;
 ## echoes nothing and returns false on failure &lt;br /&gt;
 user_from_uid () {&lt;br /&gt;
     if isa_number &amp;quot;$1&amp;quot;&lt;br /&gt;
     then&lt;br /&gt;
 		# look for the corresponding name in /etc/passwd&lt;br /&gt;
     	local IFS=&amp;quot;:&amp;quot;&lt;br /&gt;
     	while read name x uid the_rest&lt;br /&gt;
     	do&lt;br /&gt;
         	if [ &amp;quot;$1&amp;quot; = &amp;quot;$uid&amp;quot; ]&lt;br /&gt;
 			then &lt;br /&gt;
 				echo &amp;quot;$name&amp;quot;&lt;br /&gt;
 				return 0&lt;br /&gt;
 			fi&lt;br /&gt;
     	done &amp;lt;/etc/passwd&lt;br /&gt;
     else&lt;br /&gt;
     	# look for the username in /etc/passwd&lt;br /&gt;
     	if grep -q &amp;quot;^${1}:&amp;quot; /etc/passwd&lt;br /&gt;
     	then&lt;br /&gt;
     		echo &amp;quot;$1&amp;quot;&lt;br /&gt;
     		return 0&lt;br /&gt;
     	fi&lt;br /&gt;
     fi&lt;br /&gt;
     # if nothing was found, return false&lt;br /&gt;
    	return 1&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 ## Parses a string of comma-separated fstab options and finds out the &lt;br /&gt;
 ## username/uid assigned within them. &lt;br /&gt;
 ## echoes the found username/uid and returns true if found&lt;br /&gt;
 ## echoes &amp;quot;root&amp;quot; and returns false if none found&lt;br /&gt;
 uid_from_fs_opts () {&lt;br /&gt;
 	local uid=`echo $1 | egrep -o &#039;uid=[^,]+&#039;`&lt;br /&gt;
 	if [ -z &amp;quot;$uid&amp;quot; ]; then&lt;br /&gt;
 		# no uid was specified, so default is root&lt;br /&gt;
 		echo &amp;quot;root&amp;quot;&lt;br /&gt;
 		return 1&lt;br /&gt;
 	else&lt;br /&gt;
 		# delete the &amp;quot;uid=&amp;quot; at the beginning&lt;br /&gt;
 		uid_length=`expr length $uid - 3`&lt;br /&gt;
 		uid=`expr substr $uid 5 $uid_length`&lt;br /&gt;
 		echo $uid&lt;br /&gt;
 		return 0&lt;br /&gt;
 	fi&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # unmount all shares first&lt;br /&gt;
 sh &amp;quot;/etc/network/if-down.d/umountsshfs&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 while read fs mp type opts dump pass extra&lt;br /&gt;
 do&lt;br /&gt;
     # check validity of line&lt;br /&gt;
     if [ -z &amp;quot;$pass&amp;quot; -o -n &amp;quot;$extra&amp;quot; -o &amp;quot;`expr substr ${fs}x 1 1`&amp;quot; = &amp;quot;#&amp;quot; ]; &lt;br /&gt;
     then&lt;br /&gt;
         # line is invalid or a comment, so skip it&lt;br /&gt;
         continue&lt;br /&gt;
     &lt;br /&gt;
     # check if the line is a selected line&lt;br /&gt;
     elif echo $opts | grep -q &amp;quot;comment=$SELECTED_STRING&amp;quot;; then&lt;br /&gt;
     	&lt;br /&gt;
     	# get the uid of the mount&lt;br /&gt;
         mp_uid=`uid_from_fs_opts $opts`&lt;br /&gt;
         &lt;br /&gt;
         if am_i &amp;quot;$mp_uid&amp;quot;; then&lt;br /&gt;
 			# current user owns the mount, so mount it normally&lt;br /&gt;
 			{ sh -c &amp;quot;mount $mp&amp;quot; &amp;amp;&amp;amp; &lt;br /&gt;
 				echo &amp;quot;$mp mounted as current user (`id -un`)&amp;quot; || &lt;br /&gt;
 				echo &amp;quot;$mp failed to mount as current user (`id -un`)&amp;quot;; &lt;br /&gt;
 			} &amp;amp;&lt;br /&gt;
 		elif am_i root; then&lt;br /&gt;
 			# running as root, so sudo mount as user&lt;br /&gt;
 			if isa_number &amp;quot;$mp_uid&amp;quot;; then&lt;br /&gt;
 				# sudo wants a &amp;quot;#&amp;quot; sign icon front of a numeric uid&lt;br /&gt;
 				mp_uid=&amp;quot;#$mp_uid&amp;quot;&lt;br /&gt;
 			fi &lt;br /&gt;
 			{ sudo -u &amp;quot;$mp_uid&amp;quot; sh -c &amp;quot;mount $mp&amp;quot; &amp;amp;&amp;amp; &lt;br /&gt;
 				echo &amp;quot;$mp mounted as $mp_uid&amp;quot; || &lt;br /&gt;
 				echo &amp;quot;$mp failed to mount as $mp_uid&amp;quot;; &lt;br /&gt;
 			} &amp;amp;&lt;br /&gt;
 		else&lt;br /&gt;
 			# otherwise, don&#039;t try to mount another user&#039;s mount point&lt;br /&gt;
 			echo &amp;quot;Not attempting to mount $mp as other user $mp_uid&amp;quot;&lt;br /&gt;
 		fi&lt;br /&gt;
     fi&lt;br /&gt;
     # if not an sshfs line, do nothing&lt;br /&gt;
 done &amp;lt;/etc/fstab&lt;br /&gt;
 &lt;br /&gt;
 wait&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;/etc/network/if-down.d/umountsshfs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 # Not for loopback!&lt;br /&gt;
 [ &amp;quot;$IFACE&amp;quot; != &amp;quot;lo&amp;quot; ] || exit 0&lt;br /&gt;
 &lt;br /&gt;
 # comment this for testing&lt;br /&gt;
 exec 1&amp;gt;/dev/null # squelch output for non-interactive&lt;br /&gt;
 &lt;br /&gt;
 # umount all sshfs mounts&lt;br /&gt;
 mounted=`grep &#039;fuse.sshfs\|sshfs#&#039; /etc/mtab | awk &#039;{ print $2 }&#039;`&lt;br /&gt;
 [ -n &amp;quot;$mounted&amp;quot; ] &amp;amp;&amp;amp; { for mount in $mounted; do umount -l $mount; done; }&lt;br /&gt;
&lt;br /&gt;
Siis anna mõlemale failile käivitusõigused ja sea nende omanikuks root:&lt;br /&gt;
 sudo chmod 755 /etc/network/if-up.d/mountsshfs /etc/network/if-down.d/umountsshfs&lt;br /&gt;
 sudo chown root:root /etc/network/if-up.d/mountsshfs /etc/network/if-down.d/umountsshfs&lt;br /&gt;
&lt;br /&gt;
Nüüd peaks kõik ilusasti töötama.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
Ehkki esmapilgul tundub SSHFS tööle saamine väga pikk ja keeruline protsess, siis tegelikult oli see üpriski lihtne. Vähemalt senikaua kuni antud automaatse haakimise-lahtihaakimise skriptid töötavad. &lt;br /&gt;
&lt;br /&gt;
Lahendus on elgantne ja kordades mugavam kui pidevalt läbi SFTP ühenduda. Samas selle artikli põhiallikaks olev Ubuntu foorumi postitus väidab, et SSHFS kahjuks suuremahuliste andmete ülekandmiseks, varudamiseks ja muudeks suure koormusega tegevusteks siiski hästi ei sobi, kuna kipub taolistes olukordades ebastabiilseks.&lt;br /&gt;
&lt;br /&gt;
== Autorid ==&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2018, v1.0&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
[[Category:Andmesalvestustehnoloogiad]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=SSHFS&amp;diff=130930</id>
		<title>SSHFS</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=SSHFS&amp;diff=130930"/>
		<updated>2018-05-28T16:30:35Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SSHFS&#039;&#039;&#039; on failisüsteemiklient mis lubab SSH protokollile toetudes haakida kaug-kaustu.&lt;br /&gt;
&lt;br /&gt;
== Eeldused ==&lt;br /&gt;
Antud artikkel eeldab, et kasutaja teab mis on SSH ning oskab võtmefaili abil kaugühenduda. Lisaks oleks hea teada mis on haakimine. Kurssi viimiseks saab lugeda artikleid [https://wiki.itcollege.ee/index.php/OpenSSH:_v%C3%B5tmetega_autentimine OpenSSH: võtmega autentimine] ja [https://wiki.itcollege.ee/index.php/Mount Mount].&lt;br /&gt;
&lt;br /&gt;
== Vajalik tarkvara ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
Linuxi all läheb vaja programmi sshfs. Selle paigaldamine Debianil baseeruvates linuxites:&lt;br /&gt;
  apt install sshfs&lt;br /&gt;
&lt;br /&gt;
== Haakimine ==&lt;br /&gt;
Kui kasutaja on kursis SSH ja haakimisega, siis pole üle SSH haakimise süntaks vägagi intuitiivne.&lt;br /&gt;
  sshfs kasutaja@kuhutahanyhenduda.ee:/kaust/mida/yhendan /haakepunkt/kuhu/yhendan&lt;br /&gt;
&lt;br /&gt;
Lahtihaakimiseks&lt;br /&gt;
  fusermount -u /haakepunkt/kuhu/yhendatud&lt;br /&gt;
&lt;br /&gt;
== Probleemid ==&lt;br /&gt;
Katsetamisel esines selline probleem, et haagitud kaust pani hanguma programmid millega üritasin vaadata kausta, kus haakepunkt asus. Hangusid nii Nemo, kui ka terminal. Viimane küll vaid juhul, kui üritasid tab&#039;i kasutades failinime lõpetada. Muudes kaustades sai vabalt liigelda. Selline olukord tekkis, kui sülearvuti oli olnud mõnda aega uneseisundis, aga tegu võis olla ka muude faktoritega. Kõige tõenäolisemalt on hangumise põhjuseks võrguühenduse katkemine&amp;lt;ref name=&amp;quot;gr&amp;quot;&amp;gt;[https://ubuntuforums.org/showthread.php?t=430312 SSHFS AUTOmount on Feisty]&amp;lt;/ref&amp;gt;. Kui selline olukord tekkis, tapsin &amp;quot;sshfs&amp;quot; nimelise protsessi ja sain seejärel seadme lahti haakida. Protsesside tapmisest loe lähemalt artiklist [https://wiki.itcollege.ee/index.php/Signaalid_ja_kill Signaalid ja kill]. Katsed kinnitavad, et probleemiks on võrguühenduse katkemine.&lt;br /&gt;
&lt;br /&gt;
== Haakimine käivitamisel&amp;lt;ref name=&amp;quot;gr&amp;quot;&amp;gt;[https://ubuntuforums.org/showthread.php?t=430312 SSHFS AUTOmount on Feisty]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
=== /etc/ftsab ja /etc/fuse.conf ===&lt;br /&gt;
Esiteks tuleb lisada /etc/fstab faili kirje:&lt;br /&gt;
  sshfs#kasutaja@kuhutahanyhenduda.ee:/kaust/mida/yhendan   /haakepunkt/kuhu/yhendan    fuse    comment=sshfs,noauto,users,exec,uid=1000,gid=1000,allow_other,reconnect,transform_symlinks,BatchMode=yes 0 0&lt;br /&gt;
&lt;br /&gt;
Kokkuvõtvalt kasutame sama süntaksit, mida käsurealt haakimisel ainukese vahega, et prefiks &amp;quot;sshfs#&amp;quot; näitab ära failisüsteemi tüübi.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameetrid&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;comment=sshfs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lihtsalt kommentaar. Seda läheb hiljem skriptis vaja. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;users&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lubab failisüsteemi tavakasutajana haakida. Probleemi korral ei pea alati adminn sekkuma.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;uid&#039;&#039; ja &#039;&#039;gid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Need kaks parameetrit on vajalikud, sest automaatse haakimise puhul ei käivita haakimisprogrammi mitte kasutaja, vaid süsteem. Kasutades neid parameetreid, anname süsteemile teada kes on kausta omanik. Oma uid ja gid saad teada, trükkides terminali &amp;quot;id&amp;quot;. Kasuta enda numbreid, mitte näites antud numbreid.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;noauto&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Keelab failisüsteemi haakimise operatsioonisüsteemi käivumisel, sest võrguühendus pole sel hetkel veel üleval.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;BatchMode=yes&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ütleb sshfs protsessile, et ärgu parooli küsigu, sest automaatse haakimise skript seda sisse trükkima ei hakka. Kasuta võtmetega autentimist.&lt;br /&gt;
Teiseks lubab see parameeter ssh ühenduse jõudeseisundit. Ilma selleta haagitaks kaust lahti, kui seal mõnda aega liiklust ei toimu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Järgnevaks ava fail /etc/fuse.conf (loo see fail, kui seda ei eksisteeri) ja lisa sinna järgmine rida:&lt;br /&gt;
  user_allow_other&lt;br /&gt;
&lt;br /&gt;
=== /etc/fstab haakimise testimine ===&lt;br /&gt;
  mount /haakepunkt/kuhu/yhendan&lt;br /&gt;
&lt;br /&gt;
Ja vaata kas kaustale tekib sisu.&lt;br /&gt;
&lt;br /&gt;
=== Automaatne haakimine ===&lt;br /&gt;
Normaalse kasutamise saavutamiseks on vajalik, et kaust võrguühenduse kadumisel lahti haagitakse, ja võrguühenduse taastumise korral tagasi külge haagitakse.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
== Autorid ==&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2018, v1.0&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
[[Category:Andmesalvestustehnoloogiad]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=SSHFS&amp;diff=130896</id>
		<title>SSHFS</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=SSHFS&amp;diff=130896"/>
		<updated>2018-05-27T20:50:11Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SSHFS&#039;&#039;&#039; on failisüsteemiklient mis lubab SSH protokollile toetudes haakida kaug-kaustu.&lt;br /&gt;
&lt;br /&gt;
== Eeldused ==&lt;br /&gt;
Antud artikkel eeldab, et kasutaja teab mis on SSH ning oskab võtmefaili abil kaugühenduda. Lisaks oleks hea teada mis on haakimine. Kurssi viimiseks saab lugeda artikleid [https://wiki.itcollege.ee/index.php/OpenSSH:_v%C3%B5tmetega_autentimine OpenSSH: võtmega autentimine] ja [https://wiki.itcollege.ee/index.php/Mount Mount].&lt;br /&gt;
&lt;br /&gt;
== Vajalik tarkvara ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
Linuxi all läheb vaja programmi sshfs. Selle paigaldamine Debianil baseeruvates linuxites:&lt;br /&gt;
  apt install sshfs&lt;br /&gt;
&lt;br /&gt;
== Haakimine ==&lt;br /&gt;
Kui kasutaja on kursis SSH ja haakimisega, siis pole üle SSH haakimise süntaks vägagi intuitiivne.&lt;br /&gt;
  sshfs kasutaja@kuhutahanyhenduda.ee:/kaust/mida/yhendan /haakepunkt/kuhu/yhendan&lt;br /&gt;
&lt;br /&gt;
Lahtihaakimiseks&lt;br /&gt;
  fusermount -u /haakepunkt/kuhu/yhendatud&lt;br /&gt;
&lt;br /&gt;
== Probleemid ==&lt;br /&gt;
Katsetamisel esines selline probleem, et haagitud kaust pani hanguma programmid millega üritasin vaadata kausta, kus haakepunkt asus. Hangusid nii Nemo, kui ka terminal. Viimane küll vaid juhul, kui üritasid tab&#039;i kasutades failinime lõpetada. Muudes kaustades sai vabalt liigelda. Selline olukord tekkis, kui sülearvuti oli olnud mõnda aega uneseisundis, aga tegu võis olla ka muude faktoritega. Kõige tõenäolisemalt on hangumise põhjuseks võrguühenduse katkemine&amp;lt;ref name=&amp;quot;gr&amp;quot;&amp;gt;[https://ubuntuforums.org/showthread.php?t=430312 SSHFS AUTOmount on Feisty]&amp;lt;/ref&amp;gt;. Kui selline olukord tekkis, tapsin &amp;quot;sshfs&amp;quot; nimelise protsessi ja sain seejärel seadme lahti haakida. Protsesside tapmisest loe lähemalt artiklist [https://wiki.itcollege.ee/index.php/Signaalid_ja_kill Signaalid ja kill].&lt;br /&gt;
&lt;br /&gt;
== Haakimine käivitamisel ==&lt;br /&gt;
&amp;lt;ref name=&amp;quot;gr&amp;quot;&amp;gt;[https://ubuntuforums.org/showthread.php?t=430312 SSHFS AUTOmount on Feisty]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
== Autorid ==&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2018, v1.0&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
[[Category:Andmesalvestustehnoloogiad]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=SSHFS&amp;diff=130523</id>
		<title>SSHFS</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=SSHFS&amp;diff=130523"/>
		<updated>2018-05-07T21:01:27Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SSHFS&#039;&#039;&#039; on failisüsteemiklient mis lubab SSH protokollile toetudes haakida kaug-kaustu.&lt;br /&gt;
&lt;br /&gt;
== Eeldused ==&lt;br /&gt;
Antud artikkel eeldab, et kasutaja teab mis on SSH ning oskab võtmefaili abil kaugühenduda. Lisaks oleks hea teada mis on haakimine. Kurssi viimiseks saab lugeda artikleid [https://wiki.itcollege.ee/index.php/OpenSSH:_v%C3%B5tmetega_autentimine OpenSSH: võtmega autentimine] ja [https://wiki.itcollege.ee/index.php/Mount Mount].&lt;br /&gt;
&lt;br /&gt;
== Vajalik tarkvara ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
Linuxi all läheb vaja programmi sshfs. Selle paigaldamine Debianil baseeruvates linuxites:&lt;br /&gt;
  apt install sshfs&lt;br /&gt;
&lt;br /&gt;
== Haakimine ==&lt;br /&gt;
Kui kasutaja on kursis SSH ja haakimisega, siis pole üle SSH haakimise süntaks vägagi intuitiivne.&lt;br /&gt;
  sshfs kasutaja@kuhutahanyhenduda.ee:/kaust/mida/yhendan /haakepunkt/kuhu/yhendan&lt;br /&gt;
&lt;br /&gt;
Lahtihaakimiseks&lt;br /&gt;
  fusermount -u /haakepunkt/kuhu/yhendatud&lt;br /&gt;
&lt;br /&gt;
== Haakimine käivitamisel ==&lt;br /&gt;
&amp;lt;ref name=&amp;quot;gr&amp;quot;&amp;gt;[https://ubuntuforums.org/showthread.php?t=430312 SSHFS AUTOmount on Feisty]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Probleemid ==&lt;br /&gt;
Katsetamisel esines selline probleem, et haagitud kaust pani hanguma programmid millega üritasin vaadata kausta, kus haakepunkt asus. Hangusid nii Nemo, kui ka terminal. Viimane küll vaid juhul, kui üritasid tab&#039;i kasutades failinime lõpetada. Muudes kaustades sai vabalt liigelda. Selline olukord tekkis, kui sülearvuti oli olnud mõnda aega uneseisundis, aga tegu võis olla ka muude faktoritega. Kui selline olukord tekkis, tapsin &amp;quot;sshfs&amp;quot; nimelise protsessi ja sain seejärel seadme lahti haakida. Protsesside tapmisest loe lähemalt artiklist [https://wiki.itcollege.ee/index.php/Signaalid_ja_kill Signaalid ja kill].&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
== Autorid ==&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2018, v1.0&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
[[Category:Andmesalvestustehnoloogiad]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=SSHFS&amp;diff=130500</id>
		<title>SSHFS</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=SSHFS&amp;diff=130500"/>
		<updated>2018-05-06T11:38:25Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SSHFS&#039;&#039;&#039; on failisüsteemiklient mis lubab SSH protokollile toetudes haakida kaug-kaustu.&amp;lt;ref name=&amp;quot;gr&amp;quot;&amp;gt;[https://www.viide.ee viite toorik]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eeldused ==&lt;br /&gt;
Antud artikkel eeldab, et kasutaja teab mis on SSH ning oskab võtmefaili abil kaugühenduda. Lisaks oleks hea teada mis on haakimine. Kurssi viimiseks saab lugeda artikleid [https://wiki.itcollege.ee/index.php/OpenSSH:_v%C3%B5tmetega_autentimine OpenSSH: võtmega autentimine] ja [https://wiki.itcollege.ee/index.php/Mount Mount].&lt;br /&gt;
&lt;br /&gt;
== Vajalik tarkvara ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
Linuxi all läheb vaja programmi sshfs. Selle paigaldamine Debianil baseeruvates linuxites:&lt;br /&gt;
  apt install sshfs&lt;br /&gt;
&lt;br /&gt;
== Haakimine ==&lt;br /&gt;
Kui kasutaja on kursis SSH ja haakimisega, siis pole üle SSH haakimise süntaks vägagi intuitiivne.&lt;br /&gt;
  sshfs kasutaja@kuhutahanyhenduda.ee:/kaust/mida/yhendan /haakepunkt/kuhu/yhendan&lt;br /&gt;
&lt;br /&gt;
== Haakimine käivitamisel ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
== Autorid ==&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2018, v1.0&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
[[Category:Andmesalvestustehnoloogiad]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=SSHFS&amp;diff=130499</id>
		<title>SSHFS</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=SSHFS&amp;diff=130499"/>
		<updated>2018-05-06T11:37:03Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;SSHFS&amp;#039;&amp;#039;&amp;#039; on failisüsteemiklient mis lubab SSH protokollile toetudes haakida kaug-kaustu.&amp;lt;ref name=&amp;quot;gr&amp;quot;&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS3...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SSHFS&#039;&#039;&#039; on failisüsteemiklient mis lubab SSH protokollile toetudes haakida kaug-kaustu.&amp;lt;ref name=&amp;quot;gr&amp;quot;&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eeldused ==&lt;br /&gt;
Antud artikkel eeldab, et kasutaja teab mis on SSH ning oskab võtmefaili abil kaugühenduda. Lisaks oleks hea teada mis on haakimine. Kurssi viimiseks saab lugeda artikleid [https://wiki.itcollege.ee/index.php/OpenSSH:_v%C3%B5tmetega_autentimine OpenSSH: võtmega autentimine] ja [https://wiki.itcollege.ee/index.php/Mount Mount].&lt;br /&gt;
&lt;br /&gt;
== Vajalik tarkvara ==&lt;br /&gt;
=== Linux ===&lt;br /&gt;
Linuxi all läheb vaja programmi sshfs. Selle paigaldamine Debianil baseeruvates linuxites:&lt;br /&gt;
  apt install sshfs&lt;br /&gt;
&lt;br /&gt;
== Haakimine ==&lt;br /&gt;
Kui kasutaja on kursis SSH ja haakimisega, siis pole üle SSH haakimise süntaks vägagi intuitiivne.&lt;br /&gt;
  sshfs kasutaja@kuhutahanyhenduda.ee:/kaust/mida/yhendan /haakepunkt/kuhu/yhendan&lt;br /&gt;
&lt;br /&gt;
== Haakimine käivitamisel ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
== Autorid ==&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2018, v1.0&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
[[Category:Andmesalvestustehnoloogiad]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=AST-artiklid&amp;diff=130483</id>
		<title>AST-artiklid</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=AST-artiklid&amp;diff=130483"/>
		<updated>2018-05-06T09:17:19Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Andmesalvestustehnoloogia aines valitud viki artiklite teemad.&lt;br /&gt;
&lt;br /&gt;
Artikli lõppu lisada kindlasti ka aine kategooria:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;NB! Kindlasti lisada aine kategooria artikli lõppu: &amp;lt;nowiki&amp;gt;[[Category:Andmesalvestustehnoloogiad]]&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;teema - nimi, grupp&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Holographic data storage]] - Marko Esna AK21&lt;br /&gt;
&lt;br /&gt;
[[SMB/CIFS]] - Madis Võrklaev AK21&lt;br /&gt;
&lt;br /&gt;
[[iLO, iDRAC]] - Rudolf Purge AK21&lt;br /&gt;
&lt;br /&gt;
[[Steganograafia programmid]] - Annely Vattis AK21&lt;br /&gt;
&lt;br /&gt;
[[Tmpfs]] - Aleksandra Sepp, AK21&lt;br /&gt;
&lt;br /&gt;
[[LUKS]] - Kuldar Teinmann, AK21&lt;br /&gt;
&lt;br /&gt;
[[Steganograafia]] - Marek Skorohhodov, AK21&lt;br /&gt;
&lt;br /&gt;
[[SSHFS]] - Henri Paves AK21&lt;br /&gt;
&lt;br /&gt;
[[ZFS]] - Sander Pihelgas AK21&lt;br /&gt;
&lt;br /&gt;
[[Provisioning]] - Filip Fjodorov AK21&lt;br /&gt;
&lt;br /&gt;
Teema kirjutada kahekordsete nurksulgude vahele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Andmesalvestustehnoloogiad]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Hajusad_pilvelahendused&amp;diff=129821</id>
		<title>Hajusad pilvelahendused</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Hajusad_pilvelahendused&amp;diff=129821"/>
		<updated>2018-03-27T17:25:46Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: Created page with &amp;quot;Käesolev artikkel analüüsib traditsiooniliste pilvelahenduste nõrkusi, võrdleb neid analoogset mugavust pakkuvate toodetega ja püüab leida alternatiivseid lahendusi.  =...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Käesolev artikkel analüüsib traditsiooniliste pilvelahenduste nõrkusi, võrdleb neid analoogset mugavust pakkuvate toodetega ja püüab leida alternatiivseid lahendusi.&lt;br /&gt;
&lt;br /&gt;
== Pilvelahenduste probleemid&amp;lt;ref&amp;gt;[https://venturebeat.com/2017/11/04/the-end-of-the-cloud-is-coming/ The end of the cloud is coming]&amp;lt;/ref&amp;gt; ==&lt;br /&gt;
=== Tsentraliseeritus ===&lt;br /&gt;
Mida rohkem andmeid (ehk varandust) ühte kohta koondub, seda suuremaks märklauaks hoidla saab. Ükski ettevõte pole turvaintsidentide või andmelekete eest kaitstud&amp;lt;ref name=&amp;quot;hg&amp;quot;&amp;gt;[https://www.theguardian.com/technology/2016/aug/31/dropbox-hack-passwords-68m-data-breach Dropbox hack leads to leaking of 68m user passwords on the internet]&amp;lt;/ref&amp;gt;. Kusjuures kõik ründed ei pruugi olla suunatud hoiustatud andmete kätte saamiseks, vaid rünnata võib ka andmete käideldavust&amp;lt;ref name=&amp;quot;gh&amp;quot;&amp;gt;[https://www.independent.co.uk/news/world/europe/catalan-independence-referendum-spain-websites-blocked-spanish-constitution-votes-a7971751.html Catalan independence websites blocked by Spanish government in bid to stop referendum]&amp;lt;/ref&amp;gt;. Lisaks rünnetele esinevad ka stiihilised ohud. Ei saa välistada ka äikese, tule, vee või elektromagnetimpulsside potentsiaalset mõju pilvelahenduse pakkuja arvutiparkidele ja seega ka kasutaja andmetele.&lt;br /&gt;
&lt;br /&gt;
=== Pilv nõuab usaldust, kuid ei garanteeri midagi ===&lt;br /&gt;
Pilveandmeid hoiustatav kolmas osapool võib sattuda tohutu surve alla ja mitte kõigil ettevõtetel ei jätku piisavalt selgroogu, et kasutajate huvid enda huvidest ettepoole seada. On teada juhtumeid, kus teenusepakkuja on sellise surve alla sattudes kogu ettevõtte sulgenud&amp;lt;ref&amp;gt;[https://www.theguardian.com/commentisfree/2014/may/20/why-did-lavabit-shut-down-snowden-email Secrets, lies and Snowden&#039;s email: why I was forced to shut down Lavabit]&amp;lt;/ref&amp;gt;, kuid keegi ei tea kui palju on juhtumeid, kus on toimunud vastupidine. Lisaks võib kauni veebilehe ja intuitiivse äpi taga peituda täiesti kohutavad turvameetmed, et mitte öeda turvameetmete puudumine&amp;lt;ref name=&amp;quot;gx&amp;quot;&amp;gt;[https://www.wired.com/2014/03/bitcoin-exchange/ The Inside Story of Mt. Gox, Bitcoin&#039;s $460 Million Disaster]&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== Andmekorje ===&lt;br /&gt;
Kõigest, mida me internetis teeme, jääb maha jälg. Suurimad andmekogujad ongi ettevõtted, kes väidavad, et osutavad meile tasuta teenuseid -- ehkki tegelikult teenitakse andmeid justnimelt kasutaja andmete kogumisega, kusjuures kogumisest ei pääse isegi siis, kui oled keskkonnas välja loginud&amp;lt;ref&amp;gt;[https://www.theguardian.com/technology/2017/jul/03/facebook-track-browsing-history-california-lawsuit Facebook can track your browsing even after you&#039;ve logged out, judge says]&amp;lt;/ref&amp;gt;. Neid andmeid võidakse kasutada alstades kasutajale isilikult suunatud reklaamide müümisega, kuni valimiste mõjutamiseni välja&amp;lt;ref name=&amp;quot;gc&amp;quot;&amp;gt;[https://www.investors.com/politics/editorials/facebook-data-scandal-trump-election-obama-2012/ Funny, When Obama Harvested Facebook Data On Millions Of Users To Win In 2012, Everyone Cheered]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Skaleerumise mure ===&lt;br /&gt;
Andmemahud ja andmeülekannete mahud on tõusuteel.&amp;lt;ref&amp;gt;[https://www.cisco.com/c/en/us/solutions/collateral/service-provider/visual-networking-index-vni/vni-hyperconnectivity-wp.html The Zettabyte Era: Trends and Analysis]&amp;lt;/ref&amp;gt;. Seega võib tulevikus tekkida olukord, et andmekeskusteni viivad ühendused jäävad tohutute kasutajamasside teenindamiseks liiga kitsaks.&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=AST-artiklid&amp;diff=129516</id>
		<title>AST-artiklid</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=AST-artiklid&amp;diff=129516"/>
		<updated>2018-03-06T07:40:50Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Andmesalvestustehnoloogia aines valitud viki artiklite teemad.&lt;br /&gt;
&lt;br /&gt;
Artikli lõppu lisada kindlasti ka aine kategooria:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;NB! Kindlasti lisada aine kategooria artikli lõppu: &amp;lt;nowiki&amp;gt;[[Category:Andmesalvestustehnoloogiad]]&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;teema - nimi, grupp&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Holographic data storage]] - Marko Esna AK21&lt;br /&gt;
&lt;br /&gt;
[[SMB/CIFS]] - Madis Võrklaev AK21&lt;br /&gt;
&lt;br /&gt;
[[iLO, iDRAC]] - Rudolf Purge AK21&lt;br /&gt;
&lt;br /&gt;
[[SSHFS]] - Annely Vattis AK21&lt;br /&gt;
&lt;br /&gt;
[[Tmpfs]] - Aleksandra Sepp, AK21&lt;br /&gt;
&lt;br /&gt;
[[LUKS]] - Kuldar Teinmann, AK21&lt;br /&gt;
&lt;br /&gt;
[[Steganograafia]] - Marek Skorohhodov, AK21&lt;br /&gt;
&lt;br /&gt;
[[Hajusad pilvelahendused]] - Henri Paves AK21&lt;br /&gt;
&lt;br /&gt;
Teema kirjutada kahekordsete nurksulgude vahele.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Andmesalvestustehnoloogiad]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Category:ICS0023_Robotics&amp;diff=127234</id>
		<title>Category:ICS0023 Robotics</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Category:ICS0023_Robotics&amp;diff=127234"/>
		<updated>2017-11-26T21:09:15Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: /* Progress &amp;amp; thoughts: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
==Intro==&lt;br /&gt;
&lt;br /&gt;
The Robotics course is intended to provide 6 ECTS for participating in the Robotics Club activities.&lt;br /&gt;
From September until November of 2017 the main focus is to get two basketball robots and four sumorobots ready for Robotex 2017.&lt;br /&gt;
&lt;br /&gt;
Basically attend lectures, pick any of the suggested tasks/projects, confirm with Lauri and earn your ECTS.&lt;br /&gt;
&lt;br /&gt;
==Lectures/meetings==&lt;br /&gt;
&lt;br /&gt;
For September four lectures/meetings will take place:&lt;br /&gt;
&lt;br /&gt;
* 7. September 14:00-15:30 room 410 in College building - Introduction of Robotics Club, it&#039;s equipment, capabilities and resources. Recap of last year, take a look at running projects.&lt;br /&gt;
* 14. September 14:00-15:30 room 410 in College building - Image recognition, OpenCV, Python, video capture/playback&lt;br /&gt;
* 21. September 14:00-15:30 room 410 in College building - Microcontrollers, take a look at Arduino, ESP32 and their capabilities&lt;br /&gt;
* 28. September 14:00-15:30 room 410 in College building - Powering circuits, work safety, measuring tools, form teams for Robotex 2017.&lt;br /&gt;
&lt;br /&gt;
After September students are expected to with their group on a weekly basis at Robotics Club (room 412) to work on their project,&lt;br /&gt;
for easier synchronization there shall be pizza on Thursdays 18:00 :)&lt;br /&gt;
&lt;br /&gt;
24-26. November - Qualify at Robotex with your team&#039;s robot&lt;br /&gt;
&lt;br /&gt;
==Tasks &amp;amp; projects==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basketball robot source and relevant issues: https://github.com/eik-robo/zoidberg/issues&lt;br /&gt;
&lt;br /&gt;
* K-means clustering for image recognition&lt;br /&gt;
* Pipeline latency measurement&lt;br /&gt;
* Basketball throwing mechanism design and assembly&lt;br /&gt;
&lt;br /&gt;
Sumorobot source and relevant issues: https://github.com/eik-robo/sumoesp&lt;br /&gt;
&lt;br /&gt;
* Conduct workshops for children&lt;br /&gt;
* Web interface development&lt;br /&gt;
* Make sumo programmable in a new programming language&lt;br /&gt;
&lt;br /&gt;
Learn about gadget, publish howto and conduct workshop&lt;br /&gt;
&lt;br /&gt;
* WiFi Pineapple NANO&lt;br /&gt;
* Bash Bunny&lt;br /&gt;
* USB Rubber Ducky&lt;br /&gt;
* LAN Turtle&lt;br /&gt;
* HackRF&lt;br /&gt;
* Proxmark 3&lt;br /&gt;
* Yubikey&lt;br /&gt;
&lt;br /&gt;
Robotics club PR:&lt;br /&gt;
&lt;br /&gt;
* Maintain homepage, write and publish stories&lt;br /&gt;
* Create page at hackerspaces.org&lt;br /&gt;
* Find sponsors&lt;br /&gt;
&lt;br /&gt;
Other&lt;br /&gt;
&lt;br /&gt;
* Set up inventory management/tracking&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==For fun==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Solder [https://github.com/laurivosandi/nixiesp12 Nixie clocks]&lt;br /&gt;
* Build space probe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Teams=&lt;br /&gt;
&lt;br /&gt;
==Teh space probe==&lt;br /&gt;
&lt;br /&gt;
Members: Mikus, Frank&lt;br /&gt;
&lt;br /&gt;
Hardware missing: none?&lt;br /&gt;
&lt;br /&gt;
==Zoidberg &amp;amp; Nibbler vol2==&lt;br /&gt;
&lt;br /&gt;
Members: Marek, Madis, Taivo, Fred, Mohanad&lt;br /&gt;
&lt;br /&gt;
Hardware needed: ?&lt;br /&gt;
&lt;br /&gt;
==Maze solver==&lt;br /&gt;
&lt;br /&gt;
===Members: Allar Vendla, Andreas Porman, Henri Paves, Madis Võrklaev ===&lt;br /&gt;
&lt;br /&gt;
Allar &amp;amp; Andreas - software guys&lt;br /&gt;
&lt;br /&gt;
Henri - 3D modeling&lt;br /&gt;
&lt;br /&gt;
Madis - electronics, hardware and project management&lt;br /&gt;
&lt;br /&gt;
===GitHub: [https://github.com/allavett/mazeRunner2017 see here]===&lt;br /&gt;
&lt;br /&gt;
===Rules: [https://robotex.ee/wp-content/uploads/2017/07/robotex-lab%C3%BCrindi-reeglid-EST.pdf download here]===&lt;br /&gt;
&lt;br /&gt;
====Arena:====&lt;br /&gt;
* robot max diameter 16cm&lt;br /&gt;
* 3mm timing beam @ 3cm from ground&lt;br /&gt;
* walls are made of 18cm x 18cm blocks&lt;br /&gt;
&lt;br /&gt;
====Hardware used:====&lt;br /&gt;
* [https://store.arduino.cc/arduino-yun Arduino YUN]&lt;br /&gt;
* [http://www.nmbtc.com/pdf/motors/standard_hybrid/17PM-K.pdf Nema17 bipolar stepper motors] w. dual [http://www.st.com/content/ccc/resource/technical/document/datasheet/09/80/6c/ac/79/b2/47/c4/CD00000090.pdf/files/CD00000090.pdf/jcr:content/translations/en.CD00000090.pdf L6204 drivers]&lt;br /&gt;
* 19V Makita Li-Ion battery&lt;br /&gt;
* TK0446 DC-DC step-up converter to get 30V for steppers&lt;br /&gt;
* [http://www.micropik.com/PDF/HCSR04.pdf HC-SR04] ultrasonic sensors for distance&lt;br /&gt;
* [http://www.produktinfo.conrad.com/datenblaetter/150000-174999/153775-da-01-en-HALL_SENSOR_TLE_4935L.pdf TLE4905L] HALL effect sensors for position tracking&lt;br /&gt;
* 3D printed frame.&lt;br /&gt;
&lt;br /&gt;
====Software problems:====&lt;br /&gt;
* maze emulation for SW testing - Allar&lt;br /&gt;
* should it turn at first chance? or go as far as possible, then come back and try the first turn on its way back?&lt;br /&gt;
* recursive function for learning&lt;br /&gt;
&lt;br /&gt;
====Progress &amp;amp; thoughts:====&lt;br /&gt;
We made a first simple prototype with a [https://www.oomipood.ee/product/rob_2wd_1_robotauto_aluskomplekt_2wd_1_rattad_mootorid_kinnitused?q=robot bought chassis], Arduino Uno, 3x ultrasonic sensors and optical RPI-579 sensors for wheels. As it quickly turned out, it was really hard to get the driving and turning right without seeing the sensors&#039; realtime data. So we needed a way to see the Arduino&#039;s serial monitor wirelessly. &lt;br /&gt;
&lt;br /&gt;
At the moment there&#039;s 2 good choices for a controller that has a wireless on board - Arduino YUN and ESP32. YUN is much more expensive, ESP seems more complicated to program. As I just happen to have a YUN lying around, it&#039;s our current choice to go on with the project.&lt;br /&gt;
&lt;br /&gt;
UPDATE 16.10&lt;br /&gt;
&lt;br /&gt;
We have a second prototype with 3D printed chassis. All the hardware should be the same that will be used on a final version. Henri accidentally drew the chassis a bit too big, so for the final version we need to print a new chassis. &lt;br /&gt;
At the moment we&#039;re able to read the HC-SR04 and Hall effect sensors inside the motors and make it move as we want. The ultrasonic sensors aren&#039;t the best choice, because they are slow, but they&#039;re easy to use.&lt;br /&gt;
&lt;br /&gt;
The next steps would be building a real life maze with some turns to calibrate the moving and sensor reading in order to get it drive straight, turn exactly 90 degrees and, if necessary, adjust its position.&lt;br /&gt;
&lt;br /&gt;
Some photos and videos can be seen [https://photos.app.goo.gl/ZlsJMKsiH4c502v03 here in Google Photos].&lt;br /&gt;
&lt;br /&gt;
And it has a name! Jõmmu.&lt;br /&gt;
&lt;br /&gt;
UPDATE 17.11&lt;br /&gt;
&lt;br /&gt;
A week before competition we built a completely new unit. The main problem was that the previous one was too big, and we couldn&#039;t get it any smaller with the MAXON&#039;s motors. Madis had some NEMA17 steppers lying around, and so we decided to test them. We made an custom Arduino-shield to accomodate dual stepper drivers and all necessary connections. The PCBs were ordered from [https://www.elecrow.com/ Elecrow]. It took 8 days to get them manufactured and shipped with DHL to Estonia.&lt;br /&gt;
&lt;br /&gt;
The Makita battery holder&#039;s model was found from [https://www.thingiverse.com/thing:1809114 here].&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:1jm.jpg|thumb|alt=Battery holder|3D printed battery holder.]]&lt;br /&gt;
| [[File:2jm.jpg|thumb|alt=Battery holder|3D printed battery holder.]]&lt;br /&gt;
| [[File:3jm.jpg|thumb|alt=Frame w.motors|3D printed frame with motors.]]&lt;br /&gt;
|}&lt;br /&gt;
{|style=&amp;quot;margin: 0 auto;&amp;quot;&lt;br /&gt;
| [[File:4jm.jpg|thumb|left|alt=Driverboard|Custom driverboard.]]&lt;br /&gt;
| [[File:6jm.jpg|thumb|alt=Assembled|Assembled with battery.]]&lt;br /&gt;
| [[File:7jm.jpg|thumb|alt=Assembled|Assembled with battery.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
UPDATE 26.11&lt;br /&gt;
&lt;br /&gt;
CONCLUSION (what we learned):&lt;br /&gt;
&lt;br /&gt;
Madis:&lt;br /&gt;
* think and think again to get already the first prototype with correct measures and usable hardware&lt;br /&gt;
* surf around and see what others have done ([http://greenye.net/Pages/Micromouse/Micromouse2015-2016.htm a real robomouse])&lt;br /&gt;
* when making PCB design, double check that all power and GND traces are connected and they have decent cross-section&lt;br /&gt;
* test all the hardware functions before giving it to programmers&lt;br /&gt;
* make hardware components modular, so any component can be easily replaced if necessary&lt;br /&gt;
* make sure to have enough spares for every component&lt;br /&gt;
&lt;br /&gt;
Henri:&lt;br /&gt;
* In electronics, a significant amount of effort is needed simply to suppress hardware noise&lt;br /&gt;
* A coding error might quite literally send the hardware up in flames&lt;br /&gt;
* Hardware may produce spikes and weird signals, especially during booting/resets&lt;br /&gt;
* As such, software needs to be able to handle any errant signals that the hardware may send&lt;br /&gt;
* Brainstorming your for your own unique ideas is a great way to learn, but not an optimal way to win a competition&lt;br /&gt;
* Never develop hardware and software simultaneously&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Talk:APFS&amp;diff=126196</id>
		<title>Talk:APFS</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Talk:APFS&amp;diff=126196"/>
		<updated>2017-11-07T12:04:12Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: Created page with &amp;quot;{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; |- ! KRITEERIUM ! KAAL ! HINNANG ! SELGITUS |-   |- | Skoop | 0,5 | 0.5 | Valitud skoop on igati mõistlik. |-  |- | Artikli tutvustus ja versi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! KRITEERIUM&lt;br /&gt;
! KAAL&lt;br /&gt;
! HINNANG&lt;br /&gt;
! SELGITUS&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skoop&lt;br /&gt;
| 0,5&lt;br /&gt;
| 0.5&lt;br /&gt;
| Valitud skoop on igati mõistlik.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Artikli tutvustus ja versioon&lt;br /&gt;
| 0,5&lt;br /&gt;
| 0.4&lt;br /&gt;
| Tutvustus olemas. Versioon puudub.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Sissejuhatus&lt;br /&gt;
| 0,5&lt;br /&gt;
| 0.5&lt;br /&gt;
| Väga meeldib, et räägitakse kontekstist, kasutusest ja ajaloost.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Tehniliselt korrektne&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| Pole just Apple-guru, aga kuna mitmed BSD-le omased hüved oli esindatud, tundus korrektne.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Kasutatud kirjandus&lt;br /&gt;
| 0,5&lt;br /&gt;
| 0.5&lt;br /&gt;
| Mitmekesised allikad. Meeldis, et oli kasutatud ka ametlikke Apple dokumente.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Näited kasutamiseks/käsud&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| Meeldis, et olid näited failisüsteemide konvertimisest ja mis mida loeb/kirjutab.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Sisu&lt;br /&gt;
| 4&lt;br /&gt;
| 3.9&lt;br /&gt;
| Sisu on asjalik, ehkki esimeses pooles jääb kerge müügiartikli mekk suhu.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Ülesehitus&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| Tipp-topp.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Kirjavead ja õigekiri&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| Viisakas keelekasutus. Rõlgeid näpukaid silma ei jäänud.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Kokku&lt;br /&gt;
| 10&lt;br /&gt;
| 9.8&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Arvustas: Henri Paves, AK21, 07.11.2017&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126195</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126195"/>
		<updated>2017-11-07T12:00:54Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: struktuuri parandamine&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Signaalid&#039;&#039;&#039; on UNIX-tüüpi operatsioonisüsteemides asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref name=&amp;quot;gr&amp;quot;&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Kill&#039;&#039;&#039; on käsk, millega saab neid signaale saata.&lt;br /&gt;
&lt;br /&gt;
== Eeldused ==&lt;br /&gt;
&lt;br /&gt;
Käesolev artikkel räägib kuidas signaalid töötavad ja toob mõned näited, kuidas neid ise kasutada saab. Teeme kerge kõrvalepõike ka muudele signaalidega seotud käskudele. Artikkel eeldab, et lugeja on varem UNIX-tüüpi operatsioonisüsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide saatmine kiirsõrmistega ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;)&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/pidof.1.html pidof(1)]&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi_täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Protsessi pid&#039;i saab leida ka käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/ps.1.html ps(1)]&amp;lt;/ref&amp;gt;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi_nimi_või_nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Trivia -- käsk ps ilma argumentideta näitab meie terminali pid&#039;i ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
=== Kill põhifunktsioonid ===&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;&#039;kill&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Signaalitüüpe on väga palju. Linux Mint all koguni 64 tükki.&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. SIGTERM signaali katsetamisel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab SIGTERM puhul sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Muid signaale saates tuleb alati lisaparameetrit kasutada.&lt;br /&gt;
&lt;br /&gt;
=== Kill muud kasutused ===&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT (18), millega saab protsesse peatada (mitte &amp;quot;sulgeda&amp;quot;) ja siis lubada peatatud protsessil jätkata (mitte &amp;quot;taaskäivituda&amp;quot;). Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalis viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd_pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kill peidetud funktsioonid ===&lt;br /&gt;
&lt;br /&gt;
Tegelikult eksisteerib ka signaal 0, millest linuxi man lehed ei räägi&amp;lt;ref name=&amp;quot;gr&amp;quot;&amp;gt;&amp;lt;/ref&amp;gt;.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
Ka on väga huvitav, et signaali numbrit signaali nimeks konvertiv käsk...&lt;br /&gt;
  kill -l 0&lt;br /&gt;
...annab vastuseks lihtsalt suure &#039;&#039;&#039;T&#039;&#039;&#039;. Kui muudel juhtudel saab signaalinumbrit signaali nimega käsus asendada, siis T&#039;d kasutada proovides saame veateate.&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
Teatud tarkvarad (nt Chrome) kipuvad tekitama endast hästi palju protsesse, millele on ühekaupa väga tüütu signaale saata. Appi tuleb käsk &#039;&#039;&#039;killall&#039;&#039;&#039;&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/killall.1.html killall(1)]&amp;lt;/ref&amp;gt;, mis saadab signaali kõikidele protsessidele nime järgi.&lt;br /&gt;
  killall &#039;&#039;protsessi_täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
Kui tahad natuke peenemalt tuunida kui ühekaupa (kill), või kõiki korraga (killall), siis on olemas ka &#039;&#039;&#039;pkill&#039;&#039;&#039;&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/pgrep.1.html pgrep(1)]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Tapa kõik ühe teatud kasutaja protsessid:&lt;br /&gt;
  pkill -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Et näha mida selline käsk leiab, uuri enne käsuga:&lt;br /&gt;
  pgrep -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tegu on väga paindliku käsuga, mis vajaks ilmselt omaette artiklit.&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
Graafilise killi käivitamine sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Ma ei leidnud MAN&#039;i lugedes mida tahtsin ==&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man lehekülge. Signal lehtede nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
Ka kill käsul on mitu man lehekülge.&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
Kill käsk ei ole üksnes protsesside tapmiseks, vaid selle abil saab saata erinevaid signaale. &lt;br /&gt;
&lt;br /&gt;
Enne signaali saatmist oleks kasulik siiski alati kontrollida, millised signaalid on konkreetses süsteemis kasutusel: &lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Kill käsuga elavad lähedases sümbioosis käsud &#039;&#039;&#039;ps&#039;&#039;&#039; ja &#039;&#039;&#039;grep&#039;&#039;&#039;, mille abil saame lihtsasti tuvastada otsitava protsessi pid&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi_nimi_või_nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL ehk -9 end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Autorid ==&lt;br /&gt;
&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017, v2.0&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126191</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126191"/>
		<updated>2017-11-07T09:59:15Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: versiooni number lisatud&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide saatmine kiirsõrmistega ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi_täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Protsessi pid&#039;i saab leida ka käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi_nimi_või_nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Trivia -- käsk ps ilma argumentideta näitab meie terminali pid&#039;i ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
=== Kill põhifunktsioonid ===&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;&#039;kill&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Signaalitüüpe on väga palju. Linux Mint all koguni 64 tükki.&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. SIGTERM signaali katsetamisel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab SIGTERM puhul sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Muid signaale saates tuleb alati lisaparameetrit kasutada.&lt;br /&gt;
&lt;br /&gt;
=== Kill muud kasutused ===&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT (18), millega saab protsesse peatada (mitte &amp;quot;sulgeda&amp;quot;) ja siis lubada peatatud protsessil jätkata (mitte &amp;quot;taaskäivituda&amp;quot;). Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalis viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd_pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kill peidetud funktsioonid ===&lt;br /&gt;
&lt;br /&gt;
Tegelikult eksisteerib ka signaal 0, millest linuxi man lehed ei räägi&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
Ka on väga huvitav, et signaali numbrit signaali nimeks konvertiv käsk...&lt;br /&gt;
  kill -l 0&lt;br /&gt;
...annab vastuseks lihtsalt suure &#039;&#039;&#039;T&#039;&#039;&#039;. Kui muudel juhtudel saab signaalinumbrit signaali nimega käsus asendada, siis T&#039;d kasutada proovides saame veateate.&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
Teatud tarkvarad (nt Chrome) kipuvad tekitama endast hästi palju protsesse, millele on ühekaupa väga tüütu signaale saata. Appi tuleb käsk &#039;&#039;&#039;killall&#039;&#039;&#039;, mis saadab signaali kõikidele protsessidele nime järgi.&lt;br /&gt;
  killall &#039;&#039;protsessi_täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
Kui tahad natuke peenemalt tuunida kui ühekaupa (kill), või kõiki korraga (killall), siis on olemas ka &#039;&#039;&#039;pkill&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Tapa kõik ühe teatud kasutaja protsessid:&lt;br /&gt;
  pkill -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Et näha mida selline käsk leiab, uuri enne käsuga:&lt;br /&gt;
  pgrep -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tegu on väga paindliku käsuga, mis vajaks ilmselt omaette artiklit.&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
Graafilise killi käivitamine sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Ma ei leidnud MAN&#039;i lugedes mida tahtsin ==&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man lehekülge. Signal lehtede nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
Ka kill käsul on mitu man lehekülge.&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
Kill käsk ei ole üksnes protsesside tapmiseks, vaid selle abil saab saata erinevaid signaale. &lt;br /&gt;
&lt;br /&gt;
Enne signaali saatmist oleks kasulik siiski alati kontrollida, millised signaalid on konkreetses süsteemis kasutusel: &lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Kill käsuga elavad lähedases sümbioosis käsud &#039;&#039;&#039;ps&#039;&#039;&#039; ja &#039;&#039;&#039;grep&#039;&#039;&#039;, mille abil saame lihtsasti tuvastada otsitava protsessi pid&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi_nimi_või_nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL ehk -9 end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Autorid ==&lt;br /&gt;
&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017, v2.0&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126190</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126190"/>
		<updated>2017-11-07T09:54:53Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: jep&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide saatmine kiirsõrmistega ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi_täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Protsessi pid&#039;i saab leida ka käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi_nimi_või_nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Trivia -- käsk ps ilma argumentideta näitab meie terminali pid&#039;i ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
=== Kill põhifunktsioonid ===&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;&#039;kill&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Signaalitüüpe on väga palju. Linux Mint all koguni 64 tükki.&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. SIGTERM signaali katsetamisel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab SIGTERM puhul sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Muid signaale saates tuleb alati lisaparameetrit kasutada.&lt;br /&gt;
&lt;br /&gt;
=== Kill muud kasutused ===&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT (18), millega saab protsesse peatada (mitte &amp;quot;sulgeda&amp;quot;) ja siis lubada peatatud protsessil jätkata (mitte &amp;quot;taaskäivituda&amp;quot;). Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalis viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd_pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kill peidetud funktsioonid ===&lt;br /&gt;
&lt;br /&gt;
Tegelikult eksisteerib ka signaal 0, millest linuxi man lehed ei räägi&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
Ka on väga huvitav, et signaali numbrit signaali nimeks konvertiv käsk...&lt;br /&gt;
  kill -l 0&lt;br /&gt;
...annab vastuseks lihtsalt suure &#039;&#039;&#039;T&#039;&#039;&#039;. Kui muudel juhtudel saab signaalinumbrit signaali nimega käsus asendada, siis T&#039;d kasutada proovides saame veateate.&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
Teatud tarkvarad (nt Chrome) kipuvad tekitama endast hästi palju protsesse, millele on ühekaupa väga tüütu signaale saata. Appi tuleb käsk &#039;&#039;&#039;killall&#039;&#039;&#039;, mis saadab signaali kõikidele protsessidele nime järgi.&lt;br /&gt;
  killall &#039;&#039;protsessi_täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
Kui tahad natuke peenemalt tuunida kui ühekaupa (kill), või kõiki korraga (killall), siis on olemas ka &#039;&#039;&#039;pkill&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Tapa kõik ühe teatud kasutaja protsessid:&lt;br /&gt;
  pkill -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Et näha mida selline käsk leiab, uuri enne käsuga:&lt;br /&gt;
  pgrep -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tegu on väga paindliku käsuga, mis vajaks ilmselt omaette artiklit.&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
Graafilise killi käivitamine sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Ma ei leidnud MAN&#039;i lugedes mida tahtsin ==&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man lehekülge. Signal lehtede nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
Ka kill käsul on mitu man lehekülge.&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
Kill käsk ei ole üksnes protsesside tapmiseks, vaid selle abil saab saata erinevaid signaale. &lt;br /&gt;
&lt;br /&gt;
Enne signaali saatmist oleks kasulik siiski alati kontrollida, millised signaalid on konkreetses süsteemis kasutusel: &lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Kill käsuga elavad lähedases sümbioosis käsud &#039;&#039;&#039;ps&#039;&#039;&#039; ja &#039;&#039;&#039;grep&#039;&#039;&#039;, mille abil saame lihtsasti tuvastada otsitava protsessi pid&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi_nimi_või_nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL ehk -9 end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Autorid ==&lt;br /&gt;
&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126189</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126189"/>
		<updated>2017-11-07T09:54:05Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: punkt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide saatmine kiirsõrmistega ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi_täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Protsessi pid&#039;i saab leida ka käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi_nimi_või_nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Trivia -- käsk ps ilma argumentideta näitab meie terminali pid&#039;i ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
=== Kill põhifunktsioonid ===&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;&#039;kill&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Signaalitüüpe on väga palju. Linux Mint all koguni 64 tükki.&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. SIGTERM signaali katsetamisel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab SIGTERM puhul sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Muid signaale saates tuleb alati lisaparameetrit kasutada.&lt;br /&gt;
&lt;br /&gt;
=== Kill muud kasutused ===&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT (18), millega saab protsesse peatada (mitte &amp;quot;sulgeda&amp;quot;) ja siis lubada peatatud protsessil jätkata (mitte &amp;quot;taaskäivituda&amp;quot;). Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalis viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd_pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kill peidetud funktsioonid ===&lt;br /&gt;
&lt;br /&gt;
Tegelikult eksisteerib ka signaal 0, millest linuxi man lehed ei räägi&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
Ka on väga huvitav, et signaali numbrit signaali nimeks konvertiv käsk...&lt;br /&gt;
  kill -l 0&lt;br /&gt;
...annab vastuseks lihtsalt suure &#039;&#039;&#039;T&#039;&#039;&#039;. Kui muudel juhtudel saab signaalinumbrit signaali nimega käsus asendada, siis T&#039;d kasutada proovides saame veateate.&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
Teatud tarkvarad (nt Chrome) kipuvad tekitama endast hästi palju protsesse, millele on ühekaupa väga tüütu signaale saata. Appi tuleb käsk &#039;&#039;&#039;killall&#039;&#039;&#039;, mis saadab signaali kõikidele protsessidele nime järgi.&lt;br /&gt;
  killall &#039;&#039;protsessi_täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
Kui tahad natuke peenemalt tuunida kui ühekaupa (kill), või kõiki korraga (killall), siis on olemas ka &#039;&#039;&#039;pkill&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Tapa kõik ühe teatud kasutaja protsessid:&lt;br /&gt;
  pkill -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Et näha mida selline käsk leiab, uuri enne käsuga:&lt;br /&gt;
  pgrep -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tegu on väga paindliku käsuga, mis vajaks ilmselt omaette artiklit.&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
Graafilise killi käivitamine sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Ma ei leidnud MAN&#039;i lugedes mida tahtsin ==&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man lehekülge. Signal lehtede nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
Ka kill käsul on mitu man lehekülge.&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
Kill käsk ei ole üksnes protsesside tapmiseks, vaid selle abil saab saata erinevaid signaale. &lt;br /&gt;
&lt;br /&gt;
Enne signaali saatmist oleks kasulik siiski alati kontrollida, millised signaalid on konkreetses süsteemis kasutusel: &lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Kill käsuga elavad lähedases sümbioosis käsud &#039;&#039;&#039;ps&#039;&#039;&#039; ja &#039;&#039;&#039;grep&#039;&#039;&#039;, mille abil saame lihtsasti tuvastada otsitava protsessi pid&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi_nimi_või_nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL parameeter ehk -9 end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Autorid ==&lt;br /&gt;
&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126188</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126188"/>
		<updated>2017-11-07T09:42:49Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: /* Protsessi tuvastamine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide saatmine kiirsõrmistega ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi_täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Protsessi pid&#039;i saab leida ka käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi_nimi_või_nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Trivia -- käsk ps ilma argumentideta näitab meie terminali pid&#039;i ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
=== Kill põhifunktsioonid ===&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;&#039;kill&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Signaalitüüpe on väga palju. Linux Mint all koguni 64 tükki.&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. SIGTERM signaali katsetamisel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab SIGTERM puhul sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Muid signaale saates tuleb alati lisaparameetrit kasutada.&lt;br /&gt;
&lt;br /&gt;
=== Kill muud kasutused ===&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT (18), millega saab protsesse peatada (mitte &amp;quot;sulgeda&amp;quot;) ja siis lubada peatatud protsessil jätkata (mitte &amp;quot;taaskäivituda&amp;quot;). Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalis viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd_pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kill peidetud funktsioonid ===&lt;br /&gt;
&lt;br /&gt;
Tegelikult eksisteerib ka signaal 0, millest linuxi man lehed ei räägi&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
Ka on väga huvitav, et signaali numbrit signaali nimeks konvertiv käsk...&lt;br /&gt;
  kill -l 0&lt;br /&gt;
...annab vastuseks lihtsalt suure &#039;&#039;&#039;T&#039;&#039;&#039;. Kui muudel juhtudel saab signaalinumbrit signaali nimega käsus asendada, siis T&#039;d kasutada proovides saame veateate.&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
Teatud tarkvarad (nt Chrome) kipuvad tekitama endast hästi palju protsesse, millele on ühekaupa väga tüütu signaale saata. Appi tuleb käsk &#039;&#039;&#039;killall&#039;&#039;&#039;, mis saadab signaali kõikidele protsessidele nime järgi.&lt;br /&gt;
  killall &#039;&#039;protsessi_täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
Kui tahad natuke peenemalt tuunida kui ühekaupa (kill), või kõiki korraga (killall), siis on olemas ka &#039;&#039;&#039;pkill&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Tapa kõik ühe teatud kasutaja protsessid:&lt;br /&gt;
  pkill -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Et näha mida selline käsk leiab, uuri enne käsuga:&lt;br /&gt;
  pgrep -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tegu on väga paindliku käsuga, mis vajaks ilmselt omaette artiklit.&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
Graafilise killi käivitamine sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Ma ei leidnud MAN&#039;i lugedes mida tahtsin ==&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man lehekülge. Signal lehtede nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
Ka kill käsul on mitu man lehekülge.&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
Kill käsk ei ole üksnes protsesside tapmiseks, vaid selle abil saab saata erinevaid signaale. &lt;br /&gt;
&lt;br /&gt;
Enne signaali saatmist oleks kasulik siiski alati kontrollida, millised signaalid on konkreetses süsteemis kasutusel: &lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Kill käsuga elavad lähedases sümbioosis käsud &#039;&#039;&#039;ps&#039;&#039;&#039; ja &#039;&#039;&#039;grep&#039;&#039;&#039;, mille abil saame lihtsasti tuvastada otsitava protsessi pid&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi_nimi_või_nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL käsk end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Autorid ==&lt;br /&gt;
&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126187</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126187"/>
		<updated>2017-11-07T09:40:23Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide saatmine kiirsõrmistega ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi_täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Protsessi pid&#039;i saab leida ka käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi_nimi_või_nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
=== Kill põhifunktsioonid ===&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;&#039;kill&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Signaalitüüpe on väga palju. Linux Mint all koguni 64 tükki.&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. SIGTERM signaali katsetamisel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab SIGTERM puhul sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Muid signaale saates tuleb alati lisaparameetrit kasutada.&lt;br /&gt;
&lt;br /&gt;
=== Kill muud kasutused ===&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT (18), millega saab protsesse peatada (mitte &amp;quot;sulgeda&amp;quot;) ja siis lubada peatatud protsessil jätkata (mitte &amp;quot;taaskäivituda&amp;quot;). Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalis viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd_pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Kill peidetud funktsioonid ===&lt;br /&gt;
&lt;br /&gt;
Tegelikult eksisteerib ka signaal 0, millest linuxi man lehed ei räägi&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
Ka on väga huvitav, et signaali numbrit signaali nimeks konvertiv käsk...&lt;br /&gt;
  kill -l 0&lt;br /&gt;
...annab vastuseks lihtsalt suure &#039;&#039;&#039;T&#039;&#039;&#039;. Kui muudel juhtudel saab signaalinumbrit signaali nimega käsus asendada, siis T&#039;d kasutada proovides saame veateate.&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
Teatud tarkvarad (nt Chrome) kipuvad tekitama endast hästi palju protsesse, millele on ühekaupa väga tüütu signaale saata. Appi tuleb käsk &#039;&#039;&#039;killall&#039;&#039;&#039;, mis saadab signaali kõikidele protsessidele nime järgi.&lt;br /&gt;
  killall &#039;&#039;protsessi_täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
Kui tahad natuke peenemalt tuunida kui ühekaupa (kill), või kõiki korraga (killall), siis on olemas ka &#039;&#039;&#039;pkill&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Tapa kõik ühe teatud kasutaja protsessid:&lt;br /&gt;
  pkill -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Et näha mida selline käsk leiab, uuri enne käsuga:&lt;br /&gt;
  pgrep -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tegu on väga paindliku käsuga, mis vajaks ilmselt omaette artiklit.&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
Graafilise killi käivitamine sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Ma ei leidnud MAN&#039;i lugedes mida tahtsin ==&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man lehekülge. Signal lehtede nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
Ka kill käsul on mitu man lehekülge.&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
Kill käsk ei ole üksnes protsesside tapmiseks, vaid selle abil saab saata erinevaid signaale. &lt;br /&gt;
&lt;br /&gt;
Enne signaali saatmist oleks kasulik siiski alati kontrollida, millised signaalid on konkreetses süsteemis kasutusel: &lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Kill käsuga elavad lähedases sümbioosis käsud &#039;&#039;&#039;ps&#039;&#039;&#039; ja &#039;&#039;&#039;grep&#039;&#039;&#039;, mille abil saame lihtsasti tuvastada otsitava protsessi pid&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi_nimi_või_nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL käsk end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Autorid ==&lt;br /&gt;
&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Osadmin_referaadi_teemad&amp;diff=126185</id>
		<title>Osadmin referaadi teemad</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Osadmin_referaadi_teemad&amp;diff=126185"/>
		<updated>2017-11-07T09:24:17Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: lisasin märke, et minu töö oli artikli täiendamine&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Artikli kondikava=&lt;br /&gt;
.. on kirjeldatud [[Artikli kondikava|eraldi artiklis]].&lt;br /&gt;
&lt;br /&gt;
=Artikli teema valimine=&lt;br /&gt;
&lt;br /&gt;
* Teema peab olema seotud OSadmin ainega (sh Linuxiga). Võimalusel võib tuua sama käsu kasutamisvõimalused ka MS Windows&#039;is (nt cmd, Powershell&#039;is) jt operatsioonisüsteemides. Tuua kindlasti ka näiteid, milleks ja kuidas kasutada käsitletud teemat sysadminni töös.&lt;br /&gt;
*Teema valimiseks on erinevaid võimalusi: käesoleva viki lehelt kus kirjutab oma nime ja õppegrupi veel valimata teema taha ja tõstab selle [[#Valitud teemad|valitud teemade]] alla. Teemasid leiab ka [[#Viiteid|viidete]] hulgast ja ka Linuxi käsureal kui sisestada mistahes esimene täht ja 2x kiirelt TAB&#039;i vajutades.&lt;br /&gt;
* Kindlasti tuleb viki otsinguaknasse sisestades veenduda, et valitud teemat juba kirjutatud ei ole või annab seda oluliselt täiendada.&lt;br /&gt;
*Kui teema kohta artiklit ei ole või annab olemasolevat oluliselt täiendada siis saab selle valida ja siia artiklisse kirja panna.&lt;br /&gt;
* kui soovitakse kirjutada inglise keeles siis see on lubatud kuigi eestikeelse aine puhul on ka artikkel oodatud eesti keeles&lt;br /&gt;
*Artikkel tuleb esitada [https://wiki.itcollege.ee/ EIK&#039;i vikisse]&lt;br /&gt;
*Leida kaastudeng kes hindab artiklit alamlehe &#039;&#039;discussion&#039;&#039; all (vt [http://enos.itcollege.ee/~edmund/materials/viki-artikkel/hindamismudel-viki-artiklile.html hindamismudel]) - palun hinnangu juurde kirja panna ka tudengi nimi, õppegrupp ja kuupäev, millal hinnang kirjutati&lt;br /&gt;
*Kui artikkel on valmis ja kaastudengi poolt hinnatud, siis tuleb sellest [[:Category:Operatsioonisüsteemide administreerimine ja sidumine#Õppejõud|õppejõule teada anda]], et saaks tagasisidet anda ja hinnata. Ilmselt kõige mõistlikum on kiirsuhtluse kaudu kuid võib ka e-postiga.&lt;br /&gt;
* Kui tekib küsimusi, mida võiks täiendamist vajavatele artiklitele juurde kirjutada siis vajadusel suhelda [[:Category:Operatsioonisüsteemide_administreerimine_ja_sidumine#Õppejõud|aine õppejõuga]]. Üldiselt tasub vaadata antud käsu man-lehte, teiste vikide artikleid ja mõelda kuidas võiks antud käsust kasu olla süsteemiadministraatorile.&lt;br /&gt;
* Kui leitakse käesolevast vikist otsinguga, et konkreetne teema on puudu või vajab täiendamist siis võib selle ise siia kirjutada &amp;amp;&amp;amp; suhelda vajadusel [[:Category:Operatsioonisüsteemide_administreerimine_ja_sidumine#Õppejõud|aine õppejõuga]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;NB! Kindlasti lisada aine kategooria artikli lõppu: &amp;lt;nowiki&amp;gt;[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Valitud teemad=&lt;br /&gt;
* [[Teema]], nimi, grupp&lt;br /&gt;
* [[Head]], Andrek Laanemets, A21&lt;br /&gt;
* [[More]], Martin Tammai, A21&lt;br /&gt;
* [[Whatis]], Martin Erik Pille, A21&lt;br /&gt;
* [[Seadmed Linuxis]], Alexander Teder D21&lt;br /&gt;
* [[photorec]], Erki Aas, A21&lt;br /&gt;
* [[Wc]] + [[Nl]] - vt https://linuxjourney.com/lesson/nl-wc-command, Andres Kalavus&lt;br /&gt;
* [[Apropos]], Daniel Liik, A21&lt;br /&gt;
* [[lsb_release]], Elizaveta Romanova, A21&lt;br /&gt;
* [[Debiani varamu loomine]], Marko Esna A21&lt;br /&gt;
* [[Windowsi surmakäsud]], Siim Salla, A21&lt;br /&gt;
* [[Tr]], Vladimir Nitsenko IADB10&lt;br /&gt;
* [[APFS]], Madis Võrklaev AK21&lt;br /&gt;
* [[Mcedit + Mcview]], Meelis Mikk, A21&lt;br /&gt;
* [[Grep kasutamine]], Filip Fjodorov AK21&lt;br /&gt;
* [[wget]], Kristo Tero AK21&lt;br /&gt;
* [[Signaalid_ja_kill]] (artikli täiendamine), Henri Paves AK21&lt;br /&gt;
* [[Findmnt kasutamine]], Dmitri Kiriljuk AK21&lt;br /&gt;
* [[Android Open Source Project Oreo]], Indrek Pruul, AK31&lt;br /&gt;
* [[Linuxi surmakäsud]], Jaan Veikesaar, A21&lt;br /&gt;
* [[Keskkonna muutujad]] (artikli täiendamine) Rudolf Purge, AK21&lt;br /&gt;
* [[Debiani varamu loomine]], Toel Teemaa, AK31&lt;br /&gt;
* [[Nutiseadme op.süsteemi vahetus]], Annely Vattis, AK21&lt;br /&gt;
* [[saned]], Eduard Kõre, AK21&lt;br /&gt;
* [[Linuxi surmakäsud]] - käsud, mida kunagi ei tohiks sisestada, mis on ohtlikud, teevad süsteemi katki, Sirli Mürk AK21&lt;br /&gt;
* [[Raspberry Pi valvekaamera]], Evelin Padjus, AK31&lt;br /&gt;
* [[HTC One M8]], Martin Kokk, A21&lt;br /&gt;
* [[Windowsi surmakäsud]] - käsud, mida kunagi ei tohiks sisestada, mis on ohtlikud, teevad süsteemi katki, Annika Kask, AK21&lt;br /&gt;
* [[last, lastb]], Kuldar Teinmann, AK21&lt;br /&gt;
* [[HTC One M7 ]], Rait Rand, A21&lt;br /&gt;
* [[Terminali sessioonide salvestus ja jagamine]], Aleksandra Sepp, AK21&lt;br /&gt;
* [[Sony Xperia V]], Siim Oselein, A21&lt;br /&gt;
* [[cmp]], Mari-Liis Põrk, A21&lt;br /&gt;
* [[cd]], Seim, AK21&lt;br /&gt;
* [[macOSi surmakäsud]] - käsud, mida kunagi ei tohiks sisestada, mis on ohtlikud, teevad süsteemi katki, Oliver Nurk, A21&lt;br /&gt;
&lt;br /&gt;
=Vabad teemad=&lt;br /&gt;
* [[Bash konfiguratsioonifailid]] (artikli täiendamine)&lt;br /&gt;
* [[Ldd]] + [[Pwd]] + [[Ln]] (artikli täiendamine) - sisuliselt uue kirjutamine&lt;br /&gt;
* [[PHORONIX TEST SUITE]] (artikli täiendamine)&lt;br /&gt;
* [[Debiani varamu loomine]]&lt;br /&gt;
* [[Whatis]]&lt;br /&gt;
* [[APFS]] - Apple File System&lt;br /&gt;
* [[Arvutiklassi Linux]] - oleks vaja kaasajastada ja täiendada&lt;br /&gt;
* see ei ole kindlasti kogu valik - kõiki Linuxi käske ei ole mõistlik siia kirja panna. Kui avada Linuxi käsurida ja sisestada mistahes esimene täht ja vajutada 2x kiirelt TAB siis näeb saadaolevaid käske. Edasi tasub otsida käesolevast vikist ega selle kohta juba artiklit kirjutatud ei ole või annab seda oluliselt täiendada. Teemasid leiab ka [[#Viiteid|viidete]] hulgast.&lt;br /&gt;
* [[shebang]] - vt [https://en.wikipedia.org/wiki/Shebang_(Unix) Shebang (UNIX)]&lt;br /&gt;
&lt;br /&gt;
==Mahukamad teemad==&lt;br /&gt;
* [[remote-sudo-command-without-password]]&lt;br /&gt;
**  käivitada serveris kella sünkroniseerimine (juurkasutaja õigust nõudev käsk) üle võrgu tööjaamas salasõna küsimata (mugava sysadminni viis serveri kella õigeks panna)&lt;br /&gt;
*** tekitada sysadminni masina töölauale symlink, mis viitab hetkel sisseloginud kasutaja kodukataloogis asuvale rakenduste kaustas olevale käivitusfailile&lt;br /&gt;
*** käivitusfaili nimeks panna nt timefix-server1.desktop ja määrata ka miski ikoon&lt;br /&gt;
*** see käivitusfail peab asuma ka sysadminni tööjaama töölauakeskkonna peamenüüs süsteemsete tööriistade valikus&lt;br /&gt;
*** see käivitusfail peab käivitama käsu, mis avab terminaliakna pealkirjaga &amp;quot;Server1 timefix&amp;quot;&lt;br /&gt;
*** avanenud terminaliaknas käivitatakse skript, mis logib salasõna küsimata eemalasuvasse serverisse tavakasutajana üle SSH&lt;br /&gt;
***  eemalasuvas serveris käivitatakse omakorda skript, mis sünkroniseerib serveri kella selliselt, et salasõna ei küsita&lt;br /&gt;
*** skripti lõppu lisada paus 5 sekundit, et jõuaks lugeda kas aja sünkroniseerimine oli edukas või mitte&lt;br /&gt;
*** seejärel logitakse serverist välja (sulgeb automaatselt SSH-ühenduse)&lt;br /&gt;
**** ajaserverid - https://www.eenet.ee/EENet/ntp.html - NB! kasutada teist ajaserveri IP-aadressi 193.40.0.5, esimest kasutavad organisatsiooni võrgus asuvad ajaserverid, mis pakuvad kohalikus võrgus aja sünkroniseerimise teenust&lt;br /&gt;
** ülesande teine pool (mugava sysadminni viis eemalasuva tööjaama tarkvarapakette graafiliselt hallata):&lt;br /&gt;
*** tekitada sysadminni töölauale symlink, mis viitab hetkel sisseloginud kasutaja kodukataloogis asuvale rakenduste kaustas olevale käivitusfailile - eriti mugav on see siis kui vaja üksikuid erinevates organisatsioonides tööjaamu hallata (kus keskhaldust rakendada ei saa)&lt;br /&gt;
*** käivitusfaili nimeks panna nt software-management-desktop1.desktop ja määrata ka miski ikoon&lt;br /&gt;
*** see käivitusfail peab asuma ka sysadminni tööjaama töölauakeskkonna peamenüüs süsteemsete tööriistade valikus&lt;br /&gt;
*** see käivitusfail peab käivitama käsu, mis logib salasõna küsimata üle SSH teise desktop-masinasse&lt;br /&gt;
*** peale sisselogimist käivitab eemalasuvas desktop-masinas tavakasutaja õigustes juurkasutaja õigusi nõudva GUI-rakenduse selliselt, et aken avaneb kohalikus sysadminni masinas&lt;br /&gt;
*** seda kõike ühtegi salasõna küsimata kuid see õigus tohib olla lubatud vaid sellele konkreetsele tavakasutajale kellena SSH kaudu teise tööjaama sisse logiti&lt;br /&gt;
*** peale GUI-rakenduse akna sulgemist suletakse ka SSH-ühendus automaatselt - siin viivitust ei ole vaja kuna ei ole vaja teateid käsureal jälgida&lt;br /&gt;
*** selleks GUI-rakenduseks valida näiteks Synaptic - tarkvarapakettide haldur.&lt;br /&gt;
** teha vajalikud seadistused ning kirjeldada see kõik ka viki artiklis&lt;br /&gt;
** NB! Kõikide tegevuste juures pidada silmas ka turvalisust ja kirjutada artiklis ka lühidalt, milline tegevus/lahendus ning mil viisil turvalisusega arvestab.&lt;br /&gt;
* [[Bash]] &lt;br /&gt;
** [https://linux.die.net/man/1/bash ~103 lk man-leht], mida võiks jagada ~3 lk tudengi kohta - nii võiks ~33 tudengit leida siit võimaluse viki artikli kirjutamiseks.&lt;br /&gt;
* [[Bash-builtins]]&lt;br /&gt;
** &#039;&#039;man bash-builtins&#039;&#039; on ~31 lk -&amp;gt; üks tudeng võib võtta mitu sisemist käsku (eriti kui need on lühikesed st väikese mahuga), mis annaks ~3 lk tudengi kohta -&amp;gt; ~10 tudengit. Siin tasub luua eraldi kategooria &amp;lt;nowiki&amp;gt;[[Category:Bash-builtins]]&amp;lt;/nowiki&amp;gt;, mida lisaks ainekategooriale lisada uuelt realt iga käsu artikli lõppu - tubli algatus oleks ka olemasolevad bash-builtins käskude artiklid üles otsida ja &amp;lt;nowiki&amp;gt;[[Category:Bash-builtins]]&amp;lt;/nowiki&amp;gt; kategooria sinna lõppu lisada.&lt;br /&gt;
** &#039;&#039;man bash-builtins&#039;&#039; kirjutab: &#039;&#039;bash  defines the following built-in commands: :, ., [, alias, bg, bind, break, builtin, case, cd, command, compgen, complete, continue, declare, dirs, disown,  echo, enable, eval,  exec,  exit, export,  fc,  fg, getopts, hash, help, history, if, jobs, kill, let, local, logout, popd, printf, pushd, pwd, read, readonly, return, set, shift, shopt, source, suspend, test, times,  trap, type,  typeset,  ulimit, umask,  unalias, unset, until, wait, while&#039;&#039;.&lt;br /&gt;
* [[Graafiline teavitus sõltumata sisseloginud kasutajast]] - libnotify vms abil.&lt;br /&gt;
** Näiteks soovitakse ajastatud toimingu (CRON) abil ajastada tarkvarauuendust ja kasutajaid oleks vaja graafiliselt teavitada, eriti Ubuntu külalise kasutajat/kasutajaid (tavaliselt kodukataloogiga /tmp/guest-&amp;lt;hash&amp;gt;).&lt;br /&gt;
** Luua viki artikkel, mis kirjeldab globaalselt CRON&#039;i kaudu tarkvarauuenduse käivitamist ja kasutajanimest sõltumata sisseloginud kasutaja(te) graafiliselt teavitamist 5, 4, 3, 2, 1 minut + viimane minut iga 5 sekundi tagant + uuendamise ajal on pidevalt teade ekraanil, et toimub tarkvara automaatne uuendamine ja peale seda taaskäivitamine ning palutakse arvutit mitte välja lülitada ega mitte ühtegi rakendust kasutada.&lt;br /&gt;
** Peale uuendamist peaks arvuti automaatselt uuendama alglaaduri GRUB (juhul kui paigaldati uus tuum), korrastama teegid, eemaldama edukalt paigaldatud tarkvarapakettide failid kõvakettalt ning tegema taaskäivituse.&lt;br /&gt;
** Lisaks kontrolliks süsteemi lisatud kasutajaid ning keelaks tavakasutajatel CRON&#039;i kasutamise turvakaalutlustel.&lt;br /&gt;
** Eriti viisakas oleks kui peale taaskäivitamist kontrollitakse paigaldatud tuumi ja selle päiseid ning millelt hetkel masin töötab ja eemaldatakse kõik peale kahe viimase versiooni juhuks kui uusim ei tööta.&lt;br /&gt;
** Samal ajal teavitaks graafiliselt kasutajat, et paigaldusjärgne hooldus (üleliigsete tuumade ja selle päiste eemaldamine) on käimas ning palutakse pisut oodata kuniks see lõpule jõuab.&lt;br /&gt;
** Peale seda teavitaks graafiliselt, et süsteemi uuendamine ja hooldus on lõpule viidud ning sooviks edukat kasutamist.&lt;br /&gt;
** Lahendus luuakse ilmselt skriptimise abil - viki artiklis tuua ära loodud skriptide lähtekood koos selgitustega.&lt;br /&gt;
** Edasiarendusena võiks olla lahendatud mainitud funktsionaalsuse keskne seadistamine ja seadistuste haldamine võrgupõhiselt organisatsiooni võrgus.&lt;br /&gt;
&lt;br /&gt;
=Viiteid=&lt;br /&gt;
* [https://wiki.itcollege.ee/index.php/OSadmin_wiki_article käesolev artikkel inglisekeelsele õppele]&lt;br /&gt;
* http://manpage.io&lt;br /&gt;
* https://viki.pingviin.org/Kategooria:Linuxi_k%C3%A4sud&lt;br /&gt;
* https://viki.pingviin.org/Peamised_Linuxi_käsud_algajatel&lt;br /&gt;
* https://linuxjourney.com/&lt;br /&gt;
* [https://linux.die.net/man/ Linux man-pages]&lt;br /&gt;
* [https://linux.die.net Linux docs]&lt;br /&gt;
* http://www.tecmint.com/60-commands-of-linux-a-guide-from-newbies-to-system-administrator/&lt;br /&gt;
* http://www.tecmint.com/useful-linux-commands-for-system-administrators/&lt;br /&gt;
* http://www.cyberciti.biz/tips/top-linux-monitoring-tools.html&lt;br /&gt;
* http://www.thegeekstuff.com/2010/12/50-unix-linux-sysadmin-tutorials&lt;br /&gt;
&lt;br /&gt;
=Varasemad operatsioonisüsteemide referaadid=&lt;br /&gt;
*[[Operatsioonisüsteemide referaadid 2016 Sügis‎]]&lt;br /&gt;
*[[Operatsioonisüsteemide referaadid 2015 Sügis‎]]&lt;br /&gt;
*[[Operatsioonisüsteemide referaadid 2014 Sügis]]&lt;br /&gt;
*[[Operatsioonisüsteemide referaadid 2013 Sügis‎]]&lt;br /&gt;
*[[Operatsioonisüsteemide referaadid 2012 Sügis‎]]&lt;br /&gt;
*[[Operatsioonisüsteemide referaadid 2011 Sügis]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126121</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126121"/>
		<updated>2017-11-06T08:13:10Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: viimane lihv, näpukad, väike ümberstruktureerimine&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide saatmine kiirsõrmistega ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi_täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Protsessi pid&#039;i saab leida ka käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi_nimi_või_nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill (põhifunktsioonid) ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;&#039;kill&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Signaalitüüpe on väga palju. Linux Mint all koguni 64 tükki.&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. SIGTERM signaali katsetamisel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab SIGTERM puhul sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Muid signaale saates tuleb alati lisaparameetrit kasutada.&lt;br /&gt;
&lt;br /&gt;
== Kill muud kasutused ==&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT (18), millega saab protsesse peatada (mitte &amp;quot;sulgeda&amp;quot;) ja siis lubada peatatud protsessil jätkata (mitte &amp;quot;taaskäivituda&amp;quot;). Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalis viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd_pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Kill peidetud funktsioonid ==&lt;br /&gt;
&lt;br /&gt;
Tegelikult eksisteerib ka signaal 0, millest linuxi man lehed ei räägi&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
Ka on väga huvitav, et signaali numbrit signaali nimeks konvertiv käsk...&lt;br /&gt;
  kill -l 0&lt;br /&gt;
...annab vastuseks lihtsalt suure &#039;&#039;&#039;T&#039;&#039;&#039;. Kui muudel juhtudel saab signaalinumbrit signaali nimega käsus asendada, siis T&#039;d kasutada proovides saame veateate.&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
Teatud tarkvarad (nt Chrome) kipuvad tekitama endast hästi palju protsesse, millele on ühekaupa väga tüütu signaale saata. Appi tuleb käsk &#039;&#039;&#039;killall&#039;&#039;&#039;, mis saadab signaali kõikidele protsessidele nime järgi.&lt;br /&gt;
  killall &#039;&#039;protsessi_täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
Kui tahad natuke peenemalt tuunida kui ühekaupa (kill), või kõiki korraga (killall), siis on olemas ka &#039;&#039;&#039;pkill&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Tapa kõik ühe teatud kasutaja protsessid:&lt;br /&gt;
  pkill -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Et näha mida selline käsk leiab, uuri enne käsuga:&lt;br /&gt;
  pgrep -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tegu on väga paindliku käsuga, mis vajaks ilmselt omaette artiklit.&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
Graafilise killi käivitamine sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks trükkides:&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man7/signal.7.html signal(7)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
  man 7 signal&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man legekülge. Nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
Ka kill käsul on mitu man lehekülge.&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Enne signaali saatmist oleks kasulik siiski alati kontrollida, millised signaalid on konkreetses süsteemis kasutusel: &lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL käsk end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Autorid ==&lt;br /&gt;
&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126114</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126114"/>
		<updated>2017-11-05T23:11:31Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: /* Kill peidetud funktsioonid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autorid ==&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide saatmine kiirsõrmistega ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;&#039;kill&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Signaalitüüpe on väga palju. Linux Mint all koguni 64 tükki.&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. Katsetamise tulemusel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab SIGTERM puhul sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
Muid signaale saates tuleb alati lisaparameetrit kasutada.&lt;br /&gt;
&lt;br /&gt;
== Kill muud kasutused ==&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT(18), millega saab protsesse peatada (mitte sulgega) ja siis taaskäivitada. Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalis viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Kill peidetud funktsioonid ==&lt;br /&gt;
&lt;br /&gt;
Huvitaval kombel eksisteerib ka signaal 0, millest linuxi man lehed ei räägi.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
Ka on väga huvitav, et signaali numbrit signaali nimeks konvertiv käsk...&lt;br /&gt;
  kill -l 0&lt;br /&gt;
...annab vastuseks lihtsalt suure &#039;&#039;&#039;T&#039;&#039;&#039;. Kui muudel juhtudel saab signaalinumbrit signaali nimega käsus asendada, siis T&#039;d kasutada proovides saame veateate.&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
Teatud tarkvarad (nt Chrome) kipuvad tekitama endast hästi palju protsesse, millele on ühekaupa väga tüütu signaale saata. Appi tuleb käsk &#039;&#039;&#039;killall&#039;&#039;&#039;, mis saadab signaali kõikidele protsessidele nime järgi.&lt;br /&gt;
  killall &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
Kui tahad natuke peenemalt tuunida kui ühekaupa (kill), või kõiki korraga (killall), siis on olemas ka &#039;&#039;&#039;pkill&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Tapa kõik ühe teatud kasutaja protsessid:&lt;br /&gt;
  pkill -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Et näha mida selline käsk leiab, uuri enne käsuga:&lt;br /&gt;
  pgrep -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tegu on väga paindliku käsuga, mis vajaks ilmselt omaette artiklit.&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
See sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks trükkides:&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man7/signal.7.html signal(7)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
  man 7 signal&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man legekülge. Nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
Ka kill käsul on mitu man lehekülge.&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku: &lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL käsk end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126113</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126113"/>
		<updated>2017-11-05T23:10:37Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: /* Kill muud kasutused */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autorid ==&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide saatmine kiirsõrmistega ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;&#039;kill&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Signaalitüüpe on väga palju. Linux Mint all koguni 64 tükki.&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. Katsetamise tulemusel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab SIGTERM puhul sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
Muid signaale saates tuleb alati lisaparameetrit kasutada.&lt;br /&gt;
&lt;br /&gt;
== Kill muud kasutused ==&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT(18), millega saab protsesse peatada (mitte sulgega) ja siis taaskäivitada. Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalis viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Kill peidetud funktsioonid ==&lt;br /&gt;
&lt;br /&gt;
Huvitaval kombel eksisteerib ka signaal 0, millest linuxi man lehed ei räägi.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
Ka on väga huvitav, et signaali numbrit signaali nimeks konvertiv käsk:&lt;br /&gt;
  kill -l 0&lt;br /&gt;
Annab vastuseks lihtsalt suure &#039;&#039;&#039;T&#039;&#039;&#039;. Kui muudel juhtudel saab signaalinumbrit signaali nimega käsus asendada, siis T&#039;d kasutada proovides saame veateate.&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
Teatud tarkvarad (nt Chrome) kipuvad tekitama endast hästi palju protsesse, millele on ühekaupa väga tüütu signaale saata. Appi tuleb käsk &#039;&#039;&#039;killall&#039;&#039;&#039;, mis saadab signaali kõikidele protsessidele nime järgi.&lt;br /&gt;
  killall &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
Kui tahad natuke peenemalt tuunida kui ühekaupa (kill), või kõiki korraga (killall), siis on olemas ka &#039;&#039;&#039;pkill&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Tapa kõik ühe teatud kasutaja protsessid:&lt;br /&gt;
  pkill -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Et näha mida selline käsk leiab, uuri enne käsuga:&lt;br /&gt;
  pgrep -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tegu on väga paindliku käsuga, mis vajaks ilmselt omaette artiklit.&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
See sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks trükkides:&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man7/signal.7.html signal(7)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
  man 7 signal&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man legekülge. Nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
Ka kill käsul on mitu man lehekülge.&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku: &lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL käsk end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126112</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126112"/>
		<updated>2017-11-05T23:10:03Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: /* Kill */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autorid ==&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide saatmine kiirsõrmistega ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;&#039;kill&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Signaalitüüpe on väga palju. Linux Mint all koguni 64 tükki.&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. Katsetamise tulemusel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab SIGTERM puhul sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
Muid signaale saates tuleb alati lisaparameetrit kasutada.&lt;br /&gt;
&lt;br /&gt;
== Kill muud kasutused ==&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT(18), millega saab protsesse peatada (mitte sulgega) ja siis taaskäivitada. Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalil viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Kill peidetud funktsioonid ==&lt;br /&gt;
&lt;br /&gt;
Huvitaval kombel eksisteerib ka signaal 0, millest linuxi man lehed ei räägi.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
Ka on väga huvitav, et signaali numbrit signaali nimeks konvertiv käsk:&lt;br /&gt;
  kill -l 0&lt;br /&gt;
Annab vastuseks lihtsalt suure &#039;&#039;&#039;T&#039;&#039;&#039;. Kui muudel juhtudel saab signaalinumbrit signaali nimega käsus asendada, siis T&#039;d kasutada proovides saame veateate.&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
Teatud tarkvarad (nt Chrome) kipuvad tekitama endast hästi palju protsesse, millele on ühekaupa väga tüütu signaale saata. Appi tuleb käsk &#039;&#039;&#039;killall&#039;&#039;&#039;, mis saadab signaali kõikidele protsessidele nime järgi.&lt;br /&gt;
  killall &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
Kui tahad natuke peenemalt tuunida kui ühekaupa (kill), või kõiki korraga (killall), siis on olemas ka &#039;&#039;&#039;pkill&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Tapa kõik ühe teatud kasutaja protsessid:&lt;br /&gt;
  pkill -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Et näha mida selline käsk leiab, uuri enne käsuga:&lt;br /&gt;
  pgrep -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tegu on väga paindliku käsuga, mis vajaks ilmselt omaette artiklit.&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
See sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks trükkides:&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man7/signal.7.html signal(7)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
  man 7 signal&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man legekülge. Nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
Ka kill käsul on mitu man lehekülge.&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku: &lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL käsk end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126111</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126111"/>
		<updated>2017-11-05T23:08:47Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: /* Kill */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autorid ==&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide saatmine kiirsõrmistega ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;&#039;kill&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Signaalitüüpe on väga palju. Linux Mint all koguni 64 tükki.&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. Katsetamise tulemusel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
== Kill muud kasutused ==&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT(18), millega saab protsesse peatada (mitte sulgega) ja siis taaskäivitada. Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalil viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Kill peidetud funktsioonid ==&lt;br /&gt;
&lt;br /&gt;
Huvitaval kombel eksisteerib ka signaal 0, millest linuxi man lehed ei räägi.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
Ka on väga huvitav, et signaali numbrit signaali nimeks konvertiv käsk:&lt;br /&gt;
  kill -l 0&lt;br /&gt;
Annab vastuseks lihtsalt suure &#039;&#039;&#039;T&#039;&#039;&#039;. Kui muudel juhtudel saab signaalinumbrit signaali nimega käsus asendada, siis T&#039;d kasutada proovides saame veateate.&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
Teatud tarkvarad (nt Chrome) kipuvad tekitama endast hästi palju protsesse, millele on ühekaupa väga tüütu signaale saata. Appi tuleb käsk &#039;&#039;&#039;killall&#039;&#039;&#039;, mis saadab signaali kõikidele protsessidele nime järgi.&lt;br /&gt;
  killall &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
Kui tahad natuke peenemalt tuunida kui ühekaupa (kill), või kõiki korraga (killall), siis on olemas ka &#039;&#039;&#039;pkill&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Tapa kõik ühe teatud kasutaja protsessid:&lt;br /&gt;
  pkill -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Et näha mida selline käsk leiab, uuri enne käsuga:&lt;br /&gt;
  pgrep -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tegu on väga paindliku käsuga, mis vajaks ilmselt omaette artiklit.&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
See sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks trükkides:&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man7/signal.7.html signal(7)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
  man 7 signal&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man legekülge. Nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
Ka kill käsul on mitu man lehekülge.&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku: &lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL käsk end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126110</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126110"/>
		<updated>2017-11-05T23:07:08Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: peidetud funktsioonid lahku löödud&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autorid ==&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide saatmine kiirsõrmistega ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;&#039;kill&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. Katsetamise tulemusel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Signaalide tüüpue on väga palju. Linux Mint all koguni 64 tükki, kuid eeltoodud on põhilised.&lt;br /&gt;
&lt;br /&gt;
== Kill muud kasutused ==&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT(18), millega saab protsesse peatada (mitte sulgega) ja siis taaskäivitada. Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalil viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Kill peidetud funktsioonid ==&lt;br /&gt;
&lt;br /&gt;
Huvitaval kombel eksisteerib ka signaal 0, millest linuxi man lehed ei räägi.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
Ka on väga huvitav, et signaali numbrit signaali nimeks konvertiv käsk:&lt;br /&gt;
  kill -l 0&lt;br /&gt;
Annab vastuseks lihtsalt suure &#039;&#039;&#039;T&#039;&#039;&#039;. Kui muudel juhtudel saab signaalinumbrit signaali nimega käsus asendada, siis T&#039;d kasutada proovides saame veateate.&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
Teatud tarkvarad (nt Chrome) kipuvad tekitama endast hästi palju protsesse, millele on ühekaupa väga tüütu signaale saata. Appi tuleb käsk &#039;&#039;&#039;killall&#039;&#039;&#039;, mis saadab signaali kõikidele protsessidele nime järgi.&lt;br /&gt;
  killall &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
Kui tahad natuke peenemalt tuunida kui ühekaupa (kill), või kõiki korraga (killall), siis on olemas ka &#039;&#039;&#039;pkill&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Tapa kõik ühe teatud kasutaja protsessid:&lt;br /&gt;
  pkill -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Et näha mida selline käsk leiab, uuri enne käsuga:&lt;br /&gt;
  pgrep -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tegu on väga paindliku käsuga, mis vajaks ilmselt omaette artiklit.&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
See sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks trükkides:&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man7/signal.7.html signal(7)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
  man 7 signal&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man legekülge. Nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
Ka kill käsul on mitu man lehekülge.&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku: &lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL käsk end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126109</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126109"/>
		<updated>2017-11-05T22:55:48Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: /* Pkill */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autorid ==&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide käsitsi saatmine ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;&#039;kill&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. Katsetamise tulemusel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Huvitaval kombel eksisteerib ka signaal 0, millest linuxi man lehed ei räägi.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
== Kill muud kasutused ==&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT(18), millega saab protsesse peatada (mitte sulgega) ja siis taaskäivitada. Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalil viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
Teatud tarkvarad (nt Chrome) kipuvad tekitama endast hästi palju protsesse, millele on ühekaupa väga tüütu signaale saata. Appi tuleb käsk &#039;&#039;&#039;killall&#039;&#039;&#039;, mis saadab signaali kõikidele protsessidele nime järgi.&lt;br /&gt;
  killall &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
Kui tahad natuke peenemalt tuunida kui ühekaupa (kill), või kõiki korraga (killall), siis on olemas ka &#039;&#039;&#039;pkill&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Tapa kõik ühe teatud kasutaja protsessid:&lt;br /&gt;
  pkill -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Et näha mida selline käsk leiab, uuri enne käsuga:&lt;br /&gt;
  pgrep -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tegu on väga paindliku käsuga, mis vajaks ilmselt omaette artiklit.&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
See sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks trükkides:&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man7/signal.7.html signal(7)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
  man 7 signal&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man legekülge. Nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
Ka kill käsul on mitu man lehekülge.&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku: &lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL käsk end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126108</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126108"/>
		<updated>2017-11-05T22:55:34Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: /* Pkill */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autorid ==&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide käsitsi saatmine ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;&#039;kill&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. Katsetamise tulemusel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Huvitaval kombel eksisteerib ka signaal 0, millest linuxi man lehed ei räägi.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
== Kill muud kasutused ==&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT(18), millega saab protsesse peatada (mitte sulgega) ja siis taaskäivitada. Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalil viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
Teatud tarkvarad (nt Chrome) kipuvad tekitama endast hästi palju protsesse, millele on ühekaupa väga tüütu signaale saata. Appi tuleb käsk &#039;&#039;&#039;killall&#039;&#039;&#039;, mis saadab signaali kõikidele protsessidele nime järgi.&lt;br /&gt;
  killall &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
Kui tahad natuke peenemalt tuunida kui ühekaupa (kill), või kõiki korraga (killall), siis on olemas ka pkill.&lt;br /&gt;
&lt;br /&gt;
Tapa kõik ühe teatud kasutaja protsessid:&lt;br /&gt;
  pkill -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Et näha mida selline käsk leiab, uuri enne käsuga:&lt;br /&gt;
  pgrep -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tegu on väga paindliku käsuga, mis vajaks ilmselt omaette artiklit.&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
See sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks trükkides:&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man7/signal.7.html signal(7)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
  man 7 signal&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man legekülge. Nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
Ka kill käsul on mitu man lehekülge.&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku: &lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL käsk end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126107</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126107"/>
		<updated>2017-11-05T22:55:19Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: /* Pkill */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autorid ==&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide käsitsi saatmine ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;&#039;kill&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. Katsetamise tulemusel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Huvitaval kombel eksisteerib ka signaal 0, millest linuxi man lehed ei räägi.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
== Kill muud kasutused ==&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT(18), millega saab protsesse peatada (mitte sulgega) ja siis taaskäivitada. Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalil viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
Teatud tarkvarad (nt Chrome) kipuvad tekitama endast hästi palju protsesse, millele on ühekaupa väga tüütu signaale saata. Appi tuleb käsk &#039;&#039;&#039;killall&#039;&#039;&#039;, mis saadab signaali kõikidele protsessidele nime järgi.&lt;br /&gt;
  killall &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
Kui tahad natuke peenemalt tuunida kui ühekaupa (kill), või kõiki korraga (killall), siis on olemas ka pkill.&lt;br /&gt;
&lt;br /&gt;
Tapa kõik ühe teatud kasutaja protsessid:&lt;br /&gt;
pkill -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
Et näha mida selline käsk leiab, uuri enne käsuga:&lt;br /&gt;
pgrep -u &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Tegu on väga paindliku käsuga, mis vajaks ilmselt omaette artiklit.&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
See sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks trükkides:&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man7/signal.7.html signal(7)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
  man 7 signal&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man legekülge. Nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
Ka kill käsul on mitu man lehekülge.&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku: &lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL käsk end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126106</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126106"/>
		<updated>2017-11-05T22:52:50Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: /* Killall */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autorid ==&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide käsitsi saatmine ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;&#039;kill&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. Katsetamise tulemusel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Huvitaval kombel eksisteerib ka signaal 0, millest linuxi man lehed ei räägi.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
== Kill muud kasutused ==&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT(18), millega saab protsesse peatada (mitte sulgega) ja siis taaskäivitada. Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalil viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
Teatud tarkvarad (nt Chrome) kipuvad tekitama endast hästi palju protsesse, millele on ühekaupa väga tüütu signaale saata. Appi tuleb käsk &#039;&#039;&#039;killall&#039;&#039;&#039;, mis saadab signaali kõikidele protsessidele nime järgi.&lt;br /&gt;
  killall &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
See sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks trükkides:&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man7/signal.7.html signal(7)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
  man 7 signal&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man legekülge. Nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
Ka kill käsul on mitu man lehekülge.&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku: &lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL käsk end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126105</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126105"/>
		<updated>2017-11-05T22:50:12Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: /* Kokkuvõte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autorid ==&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide käsitsi saatmine ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;&#039;kill&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. Katsetamise tulemusel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Huvitaval kombel eksisteerib ka signaal 0, millest linuxi man lehed ei räägi.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
== Kill muud kasutused ==&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT(18), millega saab protsesse peatada (mitte sulgega) ja siis taaskäivitada. Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalil viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
See sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks trükkides:&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man7/signal.7.html signal(7)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
  man 7 signal&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man legekülge. Nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
Ka kill käsul on mitu man lehekülge.&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku: &lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL käsk end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126104</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126104"/>
		<updated>2017-11-05T22:49:30Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: /* Kokkuvõte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autorid ==&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide käsitsi saatmine ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;&#039;kill&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. Katsetamise tulemusel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Huvitaval kombel eksisteerib ka signaal 0, millest linuxi man lehed ei räägi.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
== Kill muud kasutused ==&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT(18), millega saab protsesse peatada (mitte sulgega) ja siis taaskäivitada. Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalil viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
See sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks trükkides:&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man7/signal.7.html signal(7)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
  man 7 signal&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man legekülge. Nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
Ka kill käsul on mitu man lehekülge.&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku &#039;&#039;&#039;kill -l&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL käsk end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126103</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126103"/>
		<updated>2017-11-05T22:48:56Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autorid ==&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide käsitsi saatmine ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;&#039;kill&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. Katsetamise tulemusel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;/ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Huvitaval kombel eksisteerib ka signaal 0, millest linuxi man lehed ei räägi.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
== Kill muud kasutused ==&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT(18), millega saab protsesse peatada (mitte sulgega) ja siis taaskäivitada. Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalil viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
See sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks trükkides:&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man7/signal.7.html signal(7)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
  man 7 signal&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man legekülge. Nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku &#039;&#039;&#039;kill -l&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL käsk end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126102</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126102"/>
		<updated>2017-11-05T22:47:05Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: viited, uued alapealkirjad&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autorid ==&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide käsitsi saatmine ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;kill&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man1/kill.1.html kill(1)]&amp;lt;ref&amp;gt;:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. Katsetamise tulemusel leidsin, et sama tulemuse annavad kõik järgnevad käsud&amp;lt;ref&amp;gt;[https://www.youtube.com/watch?v=lP7xoqkqDZQ Linux Sysadmin Basics -- 6.1 Process Signals]&amp;lt;ref&amp;gt;:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Huvitaval kombel eksisteerib ka signaal 0, millest linuxi man lehed ei räägi.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
== Kill muud kasutused ==&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT(18), millega saab protsesse peatada (mitte sulgega) ja siis taaskäivitada. Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalil viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Killall ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pkill ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Graafiline kill ==&lt;br /&gt;
&lt;br /&gt;
See sõltub ilmselt päris palju distrost, aga vajuta ALT+F2. Trüki tekkivasse aknasse &#039;&#039;&#039;xkill&#039;&#039;&#039; ja löö enterit. Hiirekursor muutub ristiks. Selle ristiga graafilisele aknale klõpstates protsess tapetakse.&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks trükkides:&amp;lt;ref&amp;gt;[http://man7.org/linux/man-pages/man7/signal.7.html signal(7)]&amp;lt;/ref&amp;gt;&lt;br /&gt;
  man 7 signal&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man legekülge. Nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  man -k &amp;quot;^kill&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku &#039;&#039;kill -1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL käsk end hetkel õigustab.&amp;lt;ref&amp;gt;[http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126101</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126101"/>
		<updated>2017-11-05T22:37:16Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: kill muud kasutused ja kokkuvõte&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autorid ==&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals. Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide käsitsi saatmine ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill põhifunktsioonid ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;kill&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. Katsetamise tulemusel leidsin, et sama tulemuse annavad kõik järgnevad käsud:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Huvitaval kombel eksisteerib ka signaal 0, millest linuxi man lehed ei räägi.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
== Kill muud kasutused ==&lt;br /&gt;
&lt;br /&gt;
Muude huvitavamate signaalide alla kuuluvad näiteks SIGSTOP (19) ja SIGCONT(18), millega saab protsesse peatada (mitte sulgega) ja siis taaskäivitada. Eriti põnev, et vähemalt Linux Mint jättis peatatud olekus terminalile antud sisendi meelde. Ehk siis peatasin ühe terminaliga teise:&lt;br /&gt;
  kill -19 20014&lt;br /&gt;
Trükkisin peatatud terminali &amp;quot;htop&amp;quot; ja lõin enterit. Midagi ei juhtunud. Lülitusin tagasi teise terminali ja trükkisin:&lt;br /&gt;
  kill -18 20014&lt;br /&gt;
Peatatud terminalil viskus koheselt lahti programm htop.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks trükkides:&amp;lt;ref&amp;gt;http://man7.org/linux/man-pages/man7/signal.7.html signal(7)&amp;lt;/ref&amp;gt;&lt;br /&gt;
  man 7 signal&lt;br /&gt;
&lt;br /&gt;
Siit tuleb jällegi välja omakorda huvitav nüanss, et linuxi käskudel võib olla mitu man legekülge. Nimekirja nägemiseks trüki:&lt;br /&gt;
  man -k &amp;quot;^signal&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku &#039;&#039;kill -1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Ja isegi kui kõik vajalikud parameetrid on välja uuritud, tasuks ikkagi kaaluda kas SIGKILL käsk end hetkel õigustab.&amp;lt;ref&amp;gt;http://turnoff.us/geek/dont-sigkill/ The Real Reason to Not Use SIGKILL&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126099</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126099"/>
		<updated>2017-11-05T22:16:27Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: kill laiendus&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autorid ==&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals. Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide käsitsi saatmine ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;kill&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Et näha erinevate signaalitüüpide valikut, tuleb trükkida:&lt;br /&gt;
  kill -l&lt;br /&gt;
&lt;br /&gt;
Kõige levinumad käsurealt saadetavad signaalid on SIGTERM ja SIGKILL, mida tähistavad vastavalt numbrid 15 ja 9.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM). Kuna SIGTERM on kill käsu vaikimisi käitumine, ei ole käsule ette vaja anda muud parameetrit kui pid:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada, signaal SIGKILL), tuleb lisada kill käsule parameeter -9:&lt;br /&gt;
  kill -9 564&lt;br /&gt;
&lt;br /&gt;
Kill käsu süntaks on väga paindlik. Katsetamise tulemusel leidsin, et sama tulemuse annavad kõik järgnevad käsud:&lt;br /&gt;
  kill -SIGTERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -s TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -TERM 564&lt;br /&gt;
&lt;br /&gt;
  kill -sigterm 564&lt;br /&gt;
&lt;br /&gt;
  kill -s term 564&lt;br /&gt;
&lt;br /&gt;
  kill -term 564&lt;br /&gt;
&lt;br /&gt;
  kill -s 15 564&lt;br /&gt;
&lt;br /&gt;
  kill -15 564&lt;br /&gt;
&lt;br /&gt;
Kuna kill omab vaikeväärtust 15, annab sama tulemuse ka:&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Huvitaval kombel eksisteerib ka signaal 0, millest linuxi man lehed ei räägi.&lt;br /&gt;
  kill -0 564&lt;br /&gt;
&lt;br /&gt;
Antud signaal ei tee näiliselt mitte midagi. Samas kui sellele ette anda mitteeksisteeriv pid, või kasutada muud defineerimata kill parameetrit, näiteks -65, siis saame veateate. Ilmselt kontrollib -0 signaal, kas antud protsessile saab üldse signaali saata.&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks siit: http://www.comptechdoc.org/os/linux/programming/linux_pgsignals.html&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku &#039;&#039;man signal&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126083</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126083"/>
		<updated>2017-11-05T21:52:41Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: /* Autorid */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autorid ==&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals. Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide käsitsi saatmine ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;kill&#039;&#039;. &lt;br /&gt;
Mõned näited.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM):&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada):&lt;br /&gt;
  kill -s 9 564&lt;br /&gt;
või&lt;br /&gt;
  kill -s SIGKILL 564&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks siit: http://www.comptechdoc.org/os/linux/programming/linux_pgsignals.html&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku &#039;&#039;man signal&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126082</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126082"/>
		<updated>2017-11-05T21:52:30Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: autorid lisatud artikli algusesse&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Autorid ==&lt;br /&gt;
Ulvar Petmanson, AK22, 2011&lt;br /&gt;
Henri Paves, AK21, 2017&lt;br /&gt;
&lt;br /&gt;
== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals. Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide käsitsi saatmine ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;kill&#039;&#039;. &lt;br /&gt;
Mõned näited.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM):&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada):&lt;br /&gt;
  kill -s 9 564&lt;br /&gt;
või&lt;br /&gt;
  kill -s SIGKILL 564&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks siit: http://www.comptechdoc.org/os/linux/programming/linux_pgsignals.html&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku &#039;&#039;man signal&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126078</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126078"/>
		<updated>2017-11-05T21:45:17Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: allikaviide lisatud&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&amp;lt;ref&amp;gt;[https://www.csd.uoc.gr/~hy345/assignments/2013/cs345_front1.pdf CS345 OPERATING SYSTEMS System calls &amp;amp; Signals. Panagiotis Papadopoulos, Τμήμα Επιστήμης Υπολογιστών]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide käsitsi saatmine ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (&#039;&#039;&#039;pid&#039;&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab seprotsessi IDid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;kill&#039;&#039;. &lt;br /&gt;
Mõned näited.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM):&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada):&lt;br /&gt;
  kill -s 9 564&lt;br /&gt;
või&lt;br /&gt;
  kill -s SIGKILL 564&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks siit: http://www.comptechdoc.org/os/linux/programming/linux_pgsignals.html&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku &#039;&#039;man signal&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Ulvar Petmanson, AK22&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126072</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126072"/>
		<updated>2017-11-05T21:36:59Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: protsesside osas pisiparandused&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide käsitsi saatmine ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale terminalis esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile). Protsessi saab tagasi esiplaanile tuua käsuga &#039;&#039;&#039;fg&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (pid). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab selle protsessi ID leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga &#039;&#039;&#039;ps&#039;&#039;&#039;. See on üldiselt praktilisem lahendus kui eelmine, sest nagu eelnevast näitest selgus, on tarkvara ja selle protsessi nimi tihtipeale teineteisest erinevad.&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;kill&#039;&#039;. &lt;br /&gt;
Mõned näited.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM):&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada):&lt;br /&gt;
  kill -s 9 564&lt;br /&gt;
või&lt;br /&gt;
  kill -s SIGKILL 564&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks siit: http://www.comptechdoc.org/os/linux/programming/linux_pgsignals.html&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku &#039;&#039;man signal&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Ulvar Petmanson, AK22&lt;br /&gt;
&lt;br /&gt;
Henri Paves, AK21&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126058</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126058"/>
		<updated>2017-11-05T21:28:19Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: protsesside taustainfo lisamine&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide käsitsi saatmine ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile).&lt;br /&gt;
&lt;br /&gt;
== Protsessi tuvastamine ==&lt;br /&gt;
&lt;br /&gt;
Protsessile saab saata signaali teades tema täielikku nime, või siis tema protsessi ID&#039;d (pid). &lt;br /&gt;
&lt;br /&gt;
Kui tead, mis on protsessi *täpne* nimi, nt &amp;quot;skypeforlinux&amp;quot;, mitte lihtsalt &amp;quot;skype&amp;quot;, siis saab selle pid&#039;i leida käsuga:&lt;br /&gt;
  pidof &#039;&#039;protsessi täisnimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis saab selle leida käsuga ps, ehk procsesses.&lt;br /&gt;
Et näha protsesse enda kasutaja alt:&lt;br /&gt;
  ps -ux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kõikide kasutajate alt:&lt;br /&gt;
  ps -aux&lt;br /&gt;
&lt;br /&gt;
Et näha protsesse kindla kasutaja alt:&lt;br /&gt;
  ps -U &#039;&#039;kasutajanimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Filtreerimiseks kasuta grep&#039;i:&lt;br /&gt;
  ps -aux | grep &#039;&#039;protsessi nimi või nimeosa&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Huvitav trivia -- käsk ps ilma argumentideta näitab meie terminali id&#039;d ja ka mitmenda terminali instantsiga tegu&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;kill&#039;&#039;. &lt;br /&gt;
Mõned näited.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM):&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada):&lt;br /&gt;
  kill -s 9 564&lt;br /&gt;
või&lt;br /&gt;
  kill -s SIGKILL 564&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks siit: http://www.comptechdoc.org/os/linux/programming/linux_pgsignals.html&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku &#039;&#039;man signal&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Ulvar Petmanson, AK22&lt;br /&gt;
Henri Paves, AK21&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126045</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=126045"/>
		<updated>2017-11-05T21:11:54Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: /* Sissejuhatus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Asünkroonsus tähendab seda, et sõnumid võivad sündmustena aset leida mistahes ajahetkel.&lt;br /&gt;
&lt;br /&gt;
Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide käsitsi saatmine ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile).&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;kill&#039;&#039;. &lt;br /&gt;
Mõned näited.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM):&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis leiad selle järgnevalt:&lt;br /&gt;
&lt;br /&gt;
  ps | grep &#039;&#039;protsessi nimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada):&lt;br /&gt;
  kill -s 9 564&lt;br /&gt;
või&lt;br /&gt;
  kill -s SIGKILL 564&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks siit: http://www.comptechdoc.org/os/linux/programming/linux_pgsignals.html&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku &#039;&#039;man signal&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Ulvar Petmanson, AK22&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=125949</id>
		<title>Signaalid ja kill</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Signaalid_ja_kill&amp;diff=125949"/>
		<updated>2017-11-05T19:05:47Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: /* Sissejuhatus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sissejuhatus ==&lt;br /&gt;
&lt;br /&gt;
UNIX-tüüpi op. süsteemides on signaalid on asünkroonsed sõnumid, mida kasutatakse, et protsessi millestki teavitada. Järgnevalt pisut juttu sellest, mismoodi signaalid töötavad ja lõpus mõned näited, kuidas neid ise kasutada saab. Artikkel eeldab, et lugeja on varem UNIX-tüüpi op. süsteemi näinud ning teab, mis on protsessid ja shell.&lt;br /&gt;
&lt;br /&gt;
== Signaalid ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Signaalid saadetakse alati tuuma poolt, kuid algatus võib tulla:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;teistelt protsessidelt (kasutades &amp;quot;kill&amp;quot; käsku)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;protsessilt endalt.&#039;&#039;&#039; Siia alla käivad ka riistvaralised erandid. Näiteks nulliga jagamise puhul või kui üritatakse pöörduda eraldamata mäluruumi poole, saadetakse signaal vigasele programmile.&lt;br /&gt;
* &#039;&#039;&#039;tuumalt.&#039;&#039;&#039; Tuum kasutab signaale, et teavitada protsessi teatud süsteemsetest sündmustest. Kui protsess tellib omale &amp;quot;süsteemse äratuse&amp;quot;, ka siis saadab tuum protsessile singaali, iga kord, kui aeg täis saab (nt. iga 10 sek tagant).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mis juhtub, kui protsess saab signaali? See sõltub: protsess saab iga signaali kohta määrata, mida tuum sellega tegema peab, kas:&#039;&#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
* &#039;&#039;&#039;ignoreerida:&#039;&#039;&#039; Signaali saades ei juhtu midagi. Signaali ignoreerimine peab olema enne selle signaali saamist tellitud. Kõiki signaale ei saa eirata.&lt;br /&gt;
* &#039;&#039;&#039;kinni püüda:&#039;&#039;&#039; Sel puhul kutsub tuum välja defineeritud erirutiini. See erirutiin peab olema enne signaali saatmist registreeritud.&lt;br /&gt;
* &#039;&#039;&#039;kasutada vaikimisi sätteid:&#039;&#039;&#039; Igale signaalile on süsteemselt määratud vaikimisi toiming, mis täidetakse, kui protsess ei ole sellele signaalile ignoreerimist või erikohtlemist tellinud.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Üldistavalt toimub signaali saatmine nii:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;1. Kui protsess saab signaali, mida ei ignoreerita, siis programmi täitmine katkestatakse &#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;2. Kontroll antakse üle vastavale singaalihändlerile&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;3. Peale signaalihändleri töö lõpetamist jätkatakse programmi sealt, kus pooleli jäädi.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Signaali saab saata ainutl protsessile, mis on sinu oma. Kui üritada saata signaali kellegi teise protsessile, siis seda ignoreeritakse. Erandiks on siinkohal root-kasutaja, kes saab saata signaale kõigi protsessidele.&lt;br /&gt;
&lt;br /&gt;
Praktikas on signaali saatmise mehhanism natuke keerukam ja koosneb kahest sammus: signaali genereerimine ja signaali kohaletoimetamine.&lt;br /&gt;
Tuum genereerib protsessi jaoks signaali lihtsalt nii, et seab üles lipu, mis näitab, millise signaalitüübiga on tegu. Täpsemalt, igal protsessil on mäluosa, mida kasutatakse ootavate signaalide jaoks. Süsteemi jaoks tähendab signaali tekitamine lihtsalt õige biti (vastavalt signaali tüübile) muutmist selles mäluosas. Sellest hetkest on signaal ootel.&lt;br /&gt;
Enne kasutajaruumi protsessile kontrolli üle andmist, kontrollib tuum alati, kas protsessil on ootel signaale. Kui avastatakse ootel signaal, siis süsteem toimetab selle signaali kohale ühel järgnevatest viisidest:&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGKILL, siis tapetakse protsess ära,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui signaaliks on SIGSTOP, siis peatatakse protsess ja pannakse magama,&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039; kui protsess ei registreerinud selle signaali jaoks ühtki erihändlerit, siis tehakse vaikimisi toiming.&#039;&#039;&#039; Kui vaikimisi toiming on ingoreerimine, siis ei tehta midagi ja süsteem lülitub tagasi kasutajarežiimi ja annab kontrolli protsessile üle. Kui vaikimisi toiming ei ole signaali eiramine, siis jäädakse tuumarežiimi ja protsess sulgetakse, tehakse tõmmis (core dump) või protsess peatatakse. &lt;br /&gt;
* &#039;&#039;&#039;kui protsess on registreerinud sellele signaalile erihändleri, siis annab tuum kontrolli tagasi protsessile ja kasutajarežiimis käivitatakse signaali erihändler.&#039;&#039;&#039; Siit jääb signaali töötlemine protsessi enda kanda.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tähele tasub panna, et tuum käivitab singaalihändleri siis, kui signaal kohale toimetatakse, mitte siis, kui signaal genereeritakse.&#039;&#039;&#039; Signaali kohaletoimetamine toimub vaid hetkel, kui sihtprotsess muudetakse aktiivseks. Ehk, signaali tekitamise kohaletoimetamise vahel võib olla märgatav ajaline vahe.&lt;br /&gt;
&lt;br /&gt;
Tegelikult on protsessil veel üks võimalus, ta võib lasta tuumal blokeerida mingi kindla signaali kohale toimetamise. Kui signaal on blokeeritud, siis singaal genereeritakse ikka, aga ta jääb ootele. Signaal toimetatakse kohale alles siis, kui protsess blokeeringu maha võtab. Signaali blokeerimist kasutatakse koodi kriitilistes kohtades, kus programm ei tohi peatuda.&lt;br /&gt;
&lt;br /&gt;
== Signaalide käsitsi saatmine ==&lt;br /&gt;
&lt;br /&gt;
Lihtsaim viis saata signaale esiplaanil töötavale protsessile on kasutada klaviatuuri:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+C&#039;&#039;: protsessile saadetakse signaal &#039;&#039;SIGINT&#039;&#039; (protsessi töö katkestatakse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ctrl+Z&#039;&#039;: protsessile saadetakse singaal &#039;&#039;SIGTSTP&#039;&#039; (protsess pannakse ajutiselt seisma, kontroll antakse tagasi shellile).&lt;br /&gt;
&lt;br /&gt;
== Kill ==&lt;br /&gt;
&lt;br /&gt;
Signaalide saatmiseks shelli käsurealt või skriptist kasutatakse käsku &#039;&#039;kill&#039;&#039;. &lt;br /&gt;
Mõned näited.&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess pid&#039;ga 564 ja lubada tal ennast korralikult sulgeda (saadetakse signaal SIGTERM):&lt;br /&gt;
  kill 564&lt;br /&gt;
&lt;br /&gt;
Kui sa protsessi pid&#039;i ei tea, siis leiad selle järgnevalt:&lt;br /&gt;
&lt;br /&gt;
  ps | grep &#039;&#039;protsessi nimi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Et tappa protsess jõuga (ilma et protsess ise saaks ennast lõpetada):&lt;br /&gt;
  kill -s 9 564&lt;br /&gt;
või&lt;br /&gt;
  kill -s SIGKILL 564&lt;br /&gt;
&lt;br /&gt;
Et saata internetiteenuste serverile (inetd) signaal, et ta oma konfiguratsioonifaili uuesti sisse laeks:&lt;br /&gt;
  kill -s HUP &#039;&#039;inetd pid&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Kokkuvõte ==&lt;br /&gt;
&lt;br /&gt;
Nimekirja linuxis kasutatavatest signaalidest leiab näiteks siit: http://www.comptechdoc.org/os/linux/programming/linux_pgsignals.html&lt;br /&gt;
&lt;br /&gt;
Tasub siiski alati kontrollida, millised on konkreetses süsteemis kasutusel kasutades käsku &#039;&#039;man signal&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Viited==&lt;br /&gt;
&lt;br /&gt;
http://ph7spot.com/musings/introduction-to-unix-signals-and-system-calls&lt;br /&gt;
&lt;br /&gt;
http://www.bsd.ee/handbook/x3750.html&lt;br /&gt;
&lt;br /&gt;
http://www.cyberciti.biz/faq/unix-kill-command-examples/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Ulvar Petmanson, AK22&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Osadmin_referaadi_teemad&amp;diff=124350</id>
		<title>Osadmin referaadi teemad</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Osadmin_referaadi_teemad&amp;diff=124350"/>
		<updated>2017-09-24T15:53:13Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Artikli kondikava=&lt;br /&gt;
.. on kirjeldatud [[Artikli kondikava|eraldi artiklis]].&lt;br /&gt;
&lt;br /&gt;
=Artikli teema valimine=&lt;br /&gt;
&lt;br /&gt;
* Teema peab olema seotud OSadmin ainega (sh Linuxiga). Võimalusel võib tuua sama käsu kasutamisvõimalused ka MS Windows&#039;is (nt cmd, Powershell&#039;is) jt operatsioonisüsteemides. Tuua kindlasti ka näiteid, milleks ja kuidas kasutada käsitletud teemat sysadminni töös.&lt;br /&gt;
*Teema valimiseks on erinevaid võimalusi: käesoleva viki lehelt kus kirjutab oma nime ja õppegrupi veel valimata teema taha ja tõstab selle [[#Valitud teemad|valitud teemade]] alla. Teemasid leiab ka [[#Viiteid|viidete]] hulgast ja ka Linuxi käsureal kui sisestada mistahes esimene täht ja 2x kiirelt TAB&#039;i vajutades.&lt;br /&gt;
* Kindlasti tuleb viki otsinguaknasse sisestades veenduda, et valitud teemat juba kirjutatud ei ole või annab seda oluliselt täiendada.&lt;br /&gt;
*Kui teema kohta artiklit ei ole või annab olemasolevat oluliselt täiendada siis saab selle valida ja siia artiklisse kirja panna.&lt;br /&gt;
* kui soovitakse kirjutada inglise keeles siis see on lubatud kuigi eestikeelse aine puhul on ka artikkel oodatud eesti keeles&lt;br /&gt;
*Artikkel tuleb esitada [https://wiki.itcollege.ee/ EIK&#039;i vikisse]&lt;br /&gt;
*Leida kaastudeng kes hindab artiklit alamlehe &#039;&#039;discussion&#039;&#039; all (vt [http://enos.itcollege.ee/~edmund/materials/viki-artikkel/hindamismudel-viki-artiklile.html hindamismudel]) - palun hinnangu juurde kirja panna ka tudengi nimi, õppegrupp ja kuupäev, millal hinnang kirjutati&lt;br /&gt;
*Kui artikkel on valmis ja kaastudengi poolt hinnatud, siis tuleb sellest [[:Category:Operatsioonisüsteemide administreerimine ja sidumine#Õppejõud|õppejõule teada anda]], et saaks tagasisidet anda ja hinnata. Ilmselt kõige mõistlikum on kiirsuhtluse kaudu kuid võib ka e-postiga.&lt;br /&gt;
* Kui tekib küsimusi, mida võiks täiendamist vajavatele artiklitele juurde kirjutada siis vajadusel suhelda [[:Category:Operatsioonisüsteemide_administreerimine_ja_sidumine#Õppejõud|aine õppejõuga]]. Üldiselt tasub vaadata antud käsu man-lehte, teiste vikide artikleid ja mõelda kuidas võiks antud käsust kasu olla süsteemiadministraatorile.&lt;br /&gt;
* Kui leitakse käesolevast vikist otsinguga, et konkreetne teema on puudu või vajab täiendamist siis võib selle ise siia kirjutada &amp;amp;&amp;amp; suhelda vajadusel [[:Category:Operatsioonisüsteemide_administreerimine_ja_sidumine#Õppejõud|aine õppejõuga]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;NB! Kindlasti lisada aine kategooria artikli lõppu: &amp;lt;nowiki&amp;gt;[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Valitud teemad=&lt;br /&gt;
* [[Teema]], nimi, grupp&lt;br /&gt;
* [[Head]], Andrek Laanemets, A21&lt;br /&gt;
* [[More]], Martin Tammai, A21&lt;br /&gt;
* [[Whatis]], Martin Erik Pille, A21&lt;br /&gt;
* [[Seadmed Linuxis]], Alexander Teder D21&lt;br /&gt;
* [[photorec]], Erki Aas, A21&lt;br /&gt;
* [[Wc]] + [[Nl]] - vt https://linuxjourney.com/lesson/nl-wc-command, Andres Kalavus&lt;br /&gt;
* [[Apropos]], Daniel Liik, A21&lt;br /&gt;
* [[lsb_release]], Elizaveta Romanova, A21&lt;br /&gt;
* [[Debiani varamu loomine]], Marko Esna A21&lt;br /&gt;
* [[Tr]], Vladimir Nitsenko IADB10&lt;br /&gt;
* [[Seadmed Linuxis]], Madis Võrklaev AK21&lt;br /&gt;
* [[Mcedit + Mcview]], Meelis Mikk, A21&lt;br /&gt;
* [[Grep kasutamine]], Filip Fjodorov AK21&lt;br /&gt;
* [[wget]], Kristo Tero AK21&lt;br /&gt;
* [[Signaalid_ja_kill]], Henri Paves AK21&lt;br /&gt;
&lt;br /&gt;
=Vabad teemad=&lt;br /&gt;
* [[Terminali sessioonide salvestus ja jagamine]]&lt;br /&gt;
* [[Bash konfiguratsioonifailid]] (artikli täiendamine)&lt;br /&gt;
* [[Keskkonna muutujad]] (artikli täiendamine)&lt;br /&gt;
* [[Ldd]] + [[Pwd]] + [[Ln]] (artikli täiendamine) - sisuliselt uue kirjutamine&lt;br /&gt;
* [[PHORONIX TEST SUITE]] (artikli täiendamine)&lt;br /&gt;
* [[Debiani varamu loomine]]&lt;br /&gt;
* [[Init]] (artikli täiendamine)&lt;br /&gt;
* [[Whatis]]&lt;br /&gt;
* [[Arvutiklassi Linux]] - oleks vaja kaasajastada ja täiendada&lt;br /&gt;
* see ei ole kindlasti kogu valik - kõiki Linuxi käske ei ole mõistlik siia kirja panna. Kui avada Linuxi käsurida ja sisestada mistahes esimene täht ja vajutada 2x kiirelt TAB siis näeb saadaolevaid käske. Edasi tasub otsida käesolevast vikist ega selle kohta juba artiklit kirjutatud ei ole või annab seda oluliselt täiendada. Teemasid leiab ka [[#Viiteid|viidete]] hulgast.&lt;br /&gt;
&lt;br /&gt;
==Mahukamad teemad==&lt;br /&gt;
* [[remote-sudo-command-without-password]]&lt;br /&gt;
**  käivitada serveris kella sünkroniseerimine (juurkasutaja õigust nõudev käsk) üle võrgu tööjaamas salasõna küsimata (mugava sysadminni viis serveri kella õigeks panna)&lt;br /&gt;
*** tekitada sysadminni masina töölauale symlink, mis viitab hetkel sisseloginud kasutaja kodukataloogis asuvale rakenduste kaustas olevale käivitusfailile&lt;br /&gt;
*** käivitusfaili nimeks panna nt timefix-server1.desktop ja määrata ka miski ikoon&lt;br /&gt;
*** see käivitusfail peab asuma ka sysadminni tööjaama töölauakeskkonna peamenüüs süsteemsete tööriistade valikus&lt;br /&gt;
*** see käivitusfail peab käivitama käsu, mis avab terminaliakna pealkirjaga &amp;quot;Server1 timefix&amp;quot;&lt;br /&gt;
*** avanenud terminaliaknas käivitatakse skript, mis logib salasõna küsimata eemalasuvasse serverisse tavakasutajana üle SSH&lt;br /&gt;
***  eemalasuvas serveris käivitatakse omakorda skript, mis sünkroniseerib serveri kella selliselt, et salasõna ei küsita&lt;br /&gt;
*** skripti lõppu lisada paus 5 sekundit, et jõuaks lugeda kas aja sünkroniseerimine oli edukas või mitte&lt;br /&gt;
*** seejärel logitakse serverist välja (sulgeb automaatselt SSH-ühenduse)&lt;br /&gt;
**** ajaserverid - https://www.eenet.ee/EENet/ntp.html - NB! kasutada teist ajaserveri IP-aadressi 193.40.0.5, esimest kasutavad organisatsiooni võrgus asuvad ajaserverid, mis pakuvad kohalikus võrgus aja sünkroniseerimise teenust&lt;br /&gt;
** ülesande teine pool (mugava sysadminni viis eemalasuva tööjaama tarkvarapakette graafiliselt hallata):&lt;br /&gt;
*** tekitada sysadminni töölauale symlink, mis viitab hetkel sisseloginud kasutaja kodukataloogis asuvale rakenduste kaustas olevale käivitusfailile - eriti mugav on see siis kui vaja üksikuid erinevates organisatsioonides tööjaamu hallata (kus keskhaldust rakendada ei saa)&lt;br /&gt;
*** käivitusfaili nimeks panna nt software-management-desktop1.desktop ja määrata ka miski ikoon&lt;br /&gt;
*** see käivitusfail peab asuma ka sysadminni tööjaama töölauakeskkonna peamenüüs süsteemsete tööriistade valikus&lt;br /&gt;
*** see käivitusfail peab käivitama käsu, mis logib salasõna küsimata üle SSH teise desktop-masinasse&lt;br /&gt;
*** peale sisselogimist käivitab eemalasuvas desktop-masinas tavakasutaja õigustes juurkasutaja õigusi nõudva GUI-rakenduse selliselt, et aken avaneb kohalikus sysadminni masinas&lt;br /&gt;
*** seda kõike ühtegi salasõna küsimata kuid see õigus tohib olla lubatud vaid sellele konkreetsele tavakasutajale kellena SSH kaudu teise tööjaama sisse logiti&lt;br /&gt;
*** peale GUI-rakenduse akna sulgemist suletakse ka SSH-ühendus automaatselt - siin viivitust ei ole vaja kuna ei ole vaja teateid käsureal jälgida&lt;br /&gt;
*** selleks GUI-rakenduseks valida näiteks Synaptic - tarkvarapakettide haldur.&lt;br /&gt;
** teha vajalikud seadistused ning kirjeldada see kõik ka viki artiklis&lt;br /&gt;
** NB! Kõikide tegevuste juures pidada silmas ka turvalisust ja kirjutada artiklis ka lühidalt, milline tegevus/lahendus ning mil viisil turvalisusega arvestab.&lt;br /&gt;
* [[Bash]] &lt;br /&gt;
** [https://linux.die.net/man/1/bash ~103 lk man-leht], mida võiks jagada ~3 lk tudengi kohta - nii võiks ~33 tudengit leida siit võimaluse viki artikli kirjutamiseks.&lt;br /&gt;
* [[Bash-builtins]]&lt;br /&gt;
** &#039;&#039;man bash-builtins&#039;&#039; on ~31 lk -&amp;gt; üks tudeng võib võtta mitu sisemist käsku (eriti kui need on lühikesed st väikese mahuga), mis annaks ~3 lk tudengi kohta -&amp;gt; ~10 tudengit. Siin tasub luua eraldi kategooria &amp;lt;nowiki&amp;gt;[[Category:Bash-builtins]]&amp;lt;/nowiki&amp;gt;, mida lisaks ainekategooriale lisada uuelt realt iga käsu artikli lõppu - tubli algatus oleks ka olemasolevad bash-builtins käskude artiklid üles otsida ja &amp;lt;nowiki&amp;gt;[[Category:Bash-builtins]]&amp;lt;/nowiki&amp;gt; kategooria sinna lõppu lisada.&lt;br /&gt;
** &#039;&#039;man bash-builtins&#039;&#039; kirjutab: &#039;&#039;bash  defines the following built-in commands: :, ., [, alias, bg, bind, break, builtin, case, cd, command, compgen, complete, continue, declare, dirs, disown,  echo, enable, eval,  exec,  exit, export,  fc,  fg, getopts, hash, help, history, if, jobs, kill, let, local, logout, popd, printf, pushd, pwd, read, readonly, return, set, shift, shopt, source, suspend, test, times,  trap, type,  typeset,  ulimit, umask,  unalias, unset, until, wait, while&#039;&#039;.&lt;br /&gt;
* [[Graafiline teavitus sõltumata sisseloginud kasutajast]] - libnotify vms abil.&lt;br /&gt;
** Näiteks soovitakse ajastatud toimingu (CRON) abil ajastada tarkvarauuendust ja kasutajaid oleks vaja graafiliselt teavitada, eriti Ubuntu külalise kasutajat/kasutajaid (tavaliselt kodukataloogiga /tmp/guest-&amp;lt;hash&amp;gt;).&lt;br /&gt;
** Luua viki artikkel, mis kirjeldab globaalselt CRON&#039;i kaudu tarkvarauuenduse käivitamist ja kasutajanimest sõltumata sisseloginud kasutaja(te) graafiliselt teavitamist 5, 4, 3, 2, 1 minut + viimane minut iga 5 sekundi tagant + uuendamise ajal on pidevalt teade ekraanil, et toimub tarkvara automaatne uuendamine ja peale seda taaskäivitamine ning palutakse arvutit mitte välja lülitada ega mitte ühtegi rakendust kasutada.&lt;br /&gt;
** Peale uuendamist peaks arvuti automaatselt uuendama alglaaduri GRUB (juhul kui paigaldati uus tuum), korrastama teegid, eemaldama edukalt paigaldatud tarkvarapakettide failid kõvakettalt ning tegema taaskäivituse.&lt;br /&gt;
** Lisaks kontrolliks süsteemi lisatud kasutajaid ning keelaks tavakasutajatel CRON&#039;i kasutamise turvakaalutlustel.&lt;br /&gt;
** Eriti viisakas oleks kui peale taaskäivitamist kontrollitakse paigaldatud tuumi ja selle päiseid ning millelt hetkel masin töötab ja eemaldatakse kõik peale kahe viimase versiooni juhuks kui uusim ei tööta.&lt;br /&gt;
** Samal ajal teavitaks graafiliselt kasutajat, et paigaldusjärgne hooldus (üleliigsete tuumade ja selle päiste eemaldamine) on käimas ning palutakse pisut oodata kuniks see lõpule jõuab.&lt;br /&gt;
** Peale seda teavitaks graafiliselt, et süsteemi uuendamine ja hooldus on lõpule viidud ning sooviks edukat kasutamist.&lt;br /&gt;
** Lahendus luuakse ilmselt skriptimise abil - viki artiklis tuua ära loodud skriptide lähtekood koos selgitustega.&lt;br /&gt;
** Edasiarendusena võiks olla lahendatud mainitud funktsionaalsuse keskne seadistamine ja seadistuste haldamine võrgupõhiselt organisatsiooni võrgus.&lt;br /&gt;
&lt;br /&gt;
=Viiteid=&lt;br /&gt;
* [https://wiki.itcollege.ee/index.php/OSadmin_wiki_article käesolev artikkel inglisekeelsele õppele]&lt;br /&gt;
* http://manpage.io&lt;br /&gt;
* https://viki.pingviin.org/Kategooria:Linuxi_k%C3%A4sud&lt;br /&gt;
* https://viki.pingviin.org/Peamised_Linuxi_käsud_algajatel&lt;br /&gt;
* https://linuxjourney.com/&lt;br /&gt;
* [https://linux.die.net/man/ Linux man-pages]&lt;br /&gt;
* [https://linux.die.net Linux docs]&lt;br /&gt;
* http://www.tecmint.com/60-commands-of-linux-a-guide-from-newbies-to-system-administrator/&lt;br /&gt;
* http://www.tecmint.com/useful-linux-commands-for-system-administrators/&lt;br /&gt;
* http://www.cyberciti.biz/tips/top-linux-monitoring-tools.html&lt;br /&gt;
* http://www.thegeekstuff.com/2010/12/50-unix-linux-sysadmin-tutorials&lt;br /&gt;
&lt;br /&gt;
=Varasemad operatsioonisüsteemide referaadid=&lt;br /&gt;
*[[Operatsioonisüsteemide referaadid 2016 Sügis‎]]&lt;br /&gt;
*[[Operatsioonisüsteemide referaadid 2015 Sügis‎]]&lt;br /&gt;
*[[Operatsioonisüsteemide referaadid 2014 Sügis]]&lt;br /&gt;
*[[Operatsioonisüsteemide referaadid 2013 Sügis‎]]&lt;br /&gt;
*[[Operatsioonisüsteemide referaadid 2012 Sügis‎]]&lt;br /&gt;
*[[Operatsioonisüsteemide referaadid 2011 Sügis]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=I027_iseseisvad_t%C3%B6%C3%B6d&amp;diff=122610</id>
		<title>I027 iseseisvad tööd</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=I027_iseseisvad_t%C3%B6%C3%B6d&amp;diff=122610"/>
		<updated>2017-05-20T11:42:36Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Käesolev artikkel on loodud aine &amp;quot;[[Sissejuhatus infotehnoloogiasse ja riistvarasse]] (ainekoodiga I027)&amp;quot; iseseisvate tööde haldamiseks.&lt;br /&gt;
Aines on vaja teha 3 praktilist tööd ja seminaritöö, mis on kõik kirjeldatud &amp;quot;Praktikumid&amp;quot; pealkirja all viidatud dokumendis.&lt;br /&gt;
&lt;br /&gt;
Palun siia dokumenti panna kirja valitud praktikumi nimetus. Ülikooli kasutajaga saavad tudengid ka vikit muuta. Muudatused salvestuvad ka ajaloos.&lt;br /&gt;
&lt;br /&gt;
See üllas eesmärk on, et võimalikult erinevaid praktikumid ja probleemilahendus saaks valitud.&lt;br /&gt;
Siit dokumendist te näete, mida keegi parasjagu tegemas on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=1.praktikum=&lt;br /&gt;
* &#039;&#039;&#039;Eesnimi Perenimi, grupp - valitud teema&#039;&#039;&#039;&lt;br /&gt;
* Mark Selezenev, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Egert Närep, DK11 - SSH vestlus&lt;br /&gt;
* Ingvar Lukas, 14 - Info riistvara kohta&lt;br /&gt;
* Jaan Veikesaar, 11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Rando Rommot, 13 - Linuxile teine töölaud&lt;br /&gt;
* Nele Naris, IA18 - Info riistvara kohta&lt;br /&gt;
* Katrin Lasberg, DK13 - Info riistvara kohta&lt;br /&gt;
* Andrek Laanemets, 11 - Info riistvara kohta&lt;br /&gt;
* Peeter Fridolin, 13 - SSH Windows + Linux&lt;br /&gt;
* Kristo Tero, IA18 - LAMP paigaldus&lt;br /&gt;
* Siim Kustassoo, IA18 - Info riistavara kohta&lt;br /&gt;
* Rain Adamson, 41 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Rein Remsu, IA17 - SSH Windows + Linux&lt;br /&gt;
* Piret Spitsõn, DK11 - Info riistvara kohta&lt;br /&gt;
* Tanel Vari, DK13 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Mihkel-Erik Mägi - Linuxile teine töölaud&lt;br /&gt;
* Jaan Koolmeister, DK 13 - Info riistvara kohta&lt;br /&gt;
* Sander Ratassepp, 13 - Linuxile teine töölaud&lt;br /&gt;
* Marilyn Võsu, DK11 - Info riistvara kohta&lt;br /&gt;
* Triin Palm, IA18 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Maie Palmeos, DK11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Dmitri Lukaš, DK11 - Info ristvara kohta&lt;br /&gt;
* Dmitri Tšurjumov, IA17 - Info riistvara kohta&lt;br /&gt;
* Leonid Grigorjevski,  IA18 - Info riistvara kohta&lt;br /&gt;
* Merilyn Merisalu, 13 - Linuxi serveri paigaldus&lt;br /&gt;
* Iakov Kanyuchka, IA18 - Info riistvara kohta&lt;br /&gt;
* Madis Roosioks, D22 - Info riistvara kohta&lt;br /&gt;
* Rauno Lõhmus, 13 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Maile Mäesalu, DK14 - Info riistvara kohta&lt;br /&gt;
* Alan Alliksoo, DK11 - Info riistvara kohta&lt;br /&gt;
* Reilika Saks, IA17 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Andres Tambek, DK12 - Info riistvara kohta&lt;br /&gt;
* Hardi Tiitus, DK12 - Info riistvara kohta&lt;br /&gt;
* Jan Pentšuk, DK12 - Info riistvara kohta&lt;br /&gt;
* Pille Ulmas, DK13 - Info riistvara kohta&lt;br /&gt;
* Peeter Stamberg, DK 11 - Info riistvara kohta&lt;br /&gt;
* Karit Kilgi, DK 32 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Kreet Solnask, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Kristo Leesmann, 13 - LAMP paigaldus&lt;br /&gt;
* Kristjan Leotoots, DK12 - SSH Windows + Linux&lt;br /&gt;
* Erki Aas, 12 - LAMP paigaldus&lt;br /&gt;
* Liis Talimaa, DK12, Info riistvara kohta&lt;br /&gt;
* Irina Geidarova, IA18 Linuxi tööjaama paigaldus&lt;br /&gt;
* Ruudi Vinter, DK12 - Info riistvara kohta&lt;br /&gt;
* Anton Kuksov, 12 - LAMP paigaldus&lt;br /&gt;
* Eduard Kõre, AK11 - Info riistvara kohta&lt;br /&gt;
* Marie Udam, DK14 - Info riistvara kohta&lt;br /&gt;
* Erik Ehrbach, DK14 - LAMP paigaldus&lt;br /&gt;
* Jüri Ahhundov, DK11 - Info riistvara kohta&lt;br /&gt;
* Kristina Garmatjuk, DK11 - Info riistvara kohta&lt;br /&gt;
* Kaisa Lindström, 15 - Info riistvara kohta&lt;br /&gt;
* Marko Esna, AK11 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Jana Kindlam, DK12 – info riistvara kohta&lt;br /&gt;
* Ave-Liis Saluveer, DK13 - info riistvara kohta&lt;br /&gt;
* Kadi Koppelmann, DK14 - info riistvara kohta&lt;br /&gt;
* Anita Sepp, DK12 - Info riistvara kohta&lt;br /&gt;
* Madis Võrklaev, AK11 - Info riistvara kohta&lt;br /&gt;
* Rudolf Purge, AK11 - Info riistvara kohta&lt;br /&gt;
* Ilmar Ermus, IA17 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Leho Kivistik, 14 - Info riistvara kohta&lt;br /&gt;
* Hannes Mäeorg, 14 - Info riistvara kohta&lt;br /&gt;
* Alexander Teder, 12 - Info riistvara kohta&lt;br /&gt;
* Jüri Vinnal, IA18 - Info riistvara kohta&lt;br /&gt;
* Marko Mõznikov, DK12 - Info riistvara kohta&lt;br /&gt;
* Radne Kaal, IA18 - Info riistvara kohta&lt;br /&gt;
* Kaarel Pärtel, 14 - Lapikute serverite töökorrastamine: Riistvara, Arch ja SSH.&lt;br /&gt;
* Kuldar Teinmann, AK11 - LAMP paigaldus&lt;br /&gt;
* Pavel Fleišer, 14 - LAMP paigaldus&lt;br /&gt;
* Katrin Kello, 14 - Info riistvara kohta&lt;br /&gt;
* Madis Liik, IA18 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Andero Samelselg, 15 - LAMP paigaldus&lt;br /&gt;
* Konstantin Dmitrijev, IA18 - Linuxile teine töölaud&lt;br /&gt;
* Filip Fjodorov, AK11 - Info riistvara kohta&lt;br /&gt;
* Jevgeni Jurtsenko, DK13 - info riistvara kohta&lt;br /&gt;
* Ruti Kerro, IA17 - LAMP paigaldus&lt;br /&gt;
* Artur Kapranov, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Annika Kask, 11 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Anton Meženin, DK14 - Info riistvara kohta&lt;br /&gt;
* Martti-Heiki Must, IA17 - Info riistvara kohta&lt;br /&gt;
* Marten Tammeleht, 13 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Indro Kottise, 15 - Info riistvara kohta&lt;br /&gt;
* Karl-Hendrik Muuga, 15 - LAMP paigaldus&lt;br /&gt;
* Priit Rätsep, DK12 - Info riistvara kohta&lt;br /&gt;
* Merike Meizner, DK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Simo Jaanus, 13 - Info riistvara kohta&lt;br /&gt;
* Henri Annilo, DK13 - SSH Windows + Linux&lt;br /&gt;
* Laura Lenbaum, IA18 - Info riistvara kohta&lt;br /&gt;
* Donna Nurmbek, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Rando Kurel, 12 - Info riistvara kohta&lt;br /&gt;
* Joonas Rihma, DK11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Helen Oppar, DK12 - Info riistvara kohta&lt;br /&gt;
* Tanel Peep, AK11 - Linux serveri paigaldus&lt;br /&gt;
* Brit Valdek, DK14 - Info riistvara kohta&lt;br /&gt;
* Oliver Nurk, 11 - Info riistvara kohta&lt;br /&gt;
* Erik Kaup, 13 - Info riistvara kohta&lt;br /&gt;
* Rait Rand, 11 - Info riistvara kohtan&lt;br /&gt;
* Elizaveta Romanova, 11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Meelis Mikk, 11 - Info riistvara kohta&lt;br /&gt;
* Karoliina Vasli - LAMP paigaldus&lt;br /&gt;
* Aare Taveter - IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Simo Sirkas, 15 - Info riistvara kohta&lt;br /&gt;
* Mihkel Tääkre, 15 - Info riistvara kohta&lt;br /&gt;
* Annely Vattis AK11- Info riistvara kohta&lt;br /&gt;
* Valdo Taevere, 13 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Anni- Bessie Kitt, DK14 - Info riistvara kohta&lt;br /&gt;
* Reio Meiusi, 15 - Info riistvara kohta&lt;br /&gt;
* Marju Niinemaa IA17 - Info riistvara kohta&lt;br /&gt;
* Tarmo Luugus, 14 - Info riistvara kohta&lt;br /&gt;
* Martin Laadoga, 14 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Rasmus Tammets, AK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Sirli Mürk, AK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Rene Väli, DK13 - Info riistvara kohta&lt;br /&gt;
* Andrei Pugatšov, DK14 - Info riistvara kohta&lt;br /&gt;
* Markus Kildemaa, 15 - Linuxile teine töölaud&lt;br /&gt;
* Anna Levijeva, 12 - LAMP paigaldus&lt;br /&gt;
* Maarja-Liisa Pilvik, DK14 - Info riistvara kohta&lt;br /&gt;
* Henrik Prangel, 12 - Info riistvara kohta&lt;br /&gt;
* Vjatsheslav Aprelkov, DK11 - info riistvara kohta&lt;br /&gt;
* Sergei Kaganski, DK14 - info riistvara kohta&lt;br /&gt;
* Andrei Tomba, DK14 - info riistvara kohta&lt;br /&gt;
* Siim Oselein, ISa11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Lisette Noor, D23 - Info riistvara kohta&lt;br /&gt;
* Kirstin Saluveer, DK13 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Lauri Üksti, DK14 - info riistvara kohta&lt;br /&gt;
* Arnika Rästa, ISd14 - info riistvara kohta&lt;br /&gt;
* Alo Avi, ISd14 - LAMP paigaldus&lt;br /&gt;
* Gert Vesterberg, DK11 - LAMP paigaldus&lt;br /&gt;
* Anna Amelkina, AK11 - Info riistvara kohta&lt;br /&gt;
* Egert Loss, DK14, Linux serveri paigaldus&lt;br /&gt;
* Ahto Ahven, 15, Info riistvara kohta&lt;br /&gt;
* Villem Markus Loigom, 11, SSH vestlus&lt;br /&gt;
* Frank Karl Koppel, 11, SSH vestlus&lt;br /&gt;
* Juta Jaama, IA18 - Info riistvara kohta&lt;br /&gt;
* Kaarel Kaine, DK12 - Info riistvara kohta&lt;br /&gt;
* Kert Saarma, 12 - Info riistvara kohta&lt;br /&gt;
* Martin Kokk, 11 - Linuxi serveri paigaldus&lt;br /&gt;
* Artur Tammiste, 14 - Info riistvara kohta&lt;br /&gt;
* Paul Richard Lettens, 12 - Info riistvara kohta&lt;br /&gt;
* Liina Laumets, DK13 - Info riistvara kohta&lt;br /&gt;
* Martin Tammai, 11 - Info riistvara kohta&lt;br /&gt;
* Margus Põlma, 15, LAMP paigaldus&lt;br /&gt;
* Kersti Perandi, DK13 - Info riistvara kohta&lt;br /&gt;
* Tõnis Prants, 15, Linuxi tööjaama paigaldus&lt;br /&gt;
* Andres Kalavus, 12, APT-i analoog Windowsis&lt;br /&gt;
* Sven Veelaid, ISd14 - info riistvara kohta&lt;br /&gt;
* Helen Riisalu, 11 - Info riistvara kohta&lt;br /&gt;
* Aleksandr Petrušihin, DK14 - Info riistvara kohta&lt;br /&gt;
* Kädi-Kristlin Miggur, IA 17 - Info riistvara kohta&lt;br /&gt;
* Karl Erik Õunapuu, 15 - LAMP paigaldus&lt;br /&gt;
* Marite Rammo, 15 - Info riistvara kohta&lt;br /&gt;
* Georg Kahest, AK11 - Linux serveri paigaldus&lt;br /&gt;
* Jekaterina Losseva, DK12 - Info riistvara kohta&lt;br /&gt;
* Madis Niinelt, IA18 - Info riistvara kohta&lt;br /&gt;
* Madis Tammekänd, DK12 - Info riistvara kohta&lt;br /&gt;
* Brita Pentšuk, 13 - Info riistvara kohta&lt;br /&gt;
* Dmitri Kiriljuk, AK11 - Info riistvara kohta&lt;br /&gt;
* Joonas Ervald, DK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Priit Järv, 12 - Info riistvara kohta&lt;br /&gt;
* Henri Paves, AK11 - Info riistvara kohta&lt;br /&gt;
&lt;br /&gt;
=2.praktikum=&lt;br /&gt;
* &#039;&#039;&#039;Eesnimi Perenimi, grupp - valitud teema&#039;&#039;&#039;&lt;br /&gt;
* Mark Selezenev, IA17 - Linuxile Teine Töölaud&lt;br /&gt;
* Egert Närep, DK11 - SSH Windows+Linux&lt;br /&gt;
* Jaan Veikesaar, 11 - Linuxile teine töölaud&lt;br /&gt;
* Rando Rommot, 13 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Katrin Lasberg, DK13 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Andrek Laanemets, 11 - Linuxile teine töölaud&lt;br /&gt;
* Kristo Tero, IA18 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Siim Kustassoo, IA18 - Teine GUI Windowsile&lt;br /&gt;
* Rain Adamson, 41 - LibreOffice&#039;i hulgipaigaldus&lt;br /&gt;
* Rein Remsu, IA17 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Mihkel-Erik Mägi, 13 - Teine GUI Windowsile.&lt;br /&gt;
* Nele Naris, IA18 - LAMP paigaldus&lt;br /&gt;
* Piret Spitsõn, DK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Dmitri Tšurjumov, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Tanel Vari, DK 13 - Info riistvara kohta&lt;br /&gt;
* Jaan Koolmeister, DK 13 - Linuxile teine töölaud&lt;br /&gt;
* Marilyn Võsu, DK11 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Madis Roosioks, D22 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Triin Palm, IA18 - Linuxile teine töölaud&lt;br /&gt;
* Maie Palmeos, DK11 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Dmitri Lukaš, DK11 - Windows Subsystem for Linux / APT&#039;i analoog Windowsile&lt;br /&gt;
* Leonid Grigorjevski, IA18 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Alan Alliksoo, DK11 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Reilika Saks, IA17 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Andres Tambek, DK12 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Hardi Tiitus, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Jan Pentšuk, DK12 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Irina Geidarova, IA18 Info riistvara kohta&lt;br /&gt;
* Karit Kilgi, DK 32 - Teine GUI Windowsile&lt;br /&gt;
* Kreet Solnask, IA17 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Kristjan Leotoots, DK12 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Liis Talimaa, DK12, SSH Windows+Linux&lt;br /&gt;
* Eduard Kõre, AK12 - SSH Windows+Linux&lt;br /&gt;
* Erik Ehrbach, DK14 - SSH Windows+Linux&lt;br /&gt;
* Helen Oppar, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Jüri Ahhundov, DK11 - SSH Windows+Linux&lt;br /&gt;
* Kristina Garmatjuk, DK11 - LAMP paigaldus&lt;br /&gt;
* Jana Kindlam, DK12 – Linuxi tööjaama paigaldus&lt;br /&gt;
* Ave-Liis Saluveer, DK13 - LAMP paigaldus&lt;br /&gt;
* Marko Esna, AK11 - Linuxile teine töölaud&lt;br /&gt;
* Alexander Teder, 12 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Marko Mõznikov, DK12 - LAMP paigaldus&lt;br /&gt;
* Madis Liik, IA18 - Teine GUI Windowsile&lt;br /&gt;
* Annika Kask, 11 - Info riistvara kohta&lt;br /&gt;
* Rando Kurel, 12- Linuxi tööjaama paigaldus&lt;br /&gt;
* Karl-Hendrik Muuga, 15 - LAMP paigaldus&lt;br /&gt;
* Ingvar Lukas, 14 - LAMP paigaldus&lt;br /&gt;
* Markus Kildemaa, 15 - Linuxi serveri paigaldus&lt;br /&gt;
* Brita Pentšuk, 13 - Linuxi serveri paigaldus&lt;br /&gt;
* Anton Kuksov, 12 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Kristo Leesmann, 13 - APT-i analoog Windowsile&lt;br /&gt;
* Sander Ratassepp, 13 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Peeter Fridolin, 13 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Joonas Rihma, DK11 - LAMP paigaldus&lt;br /&gt;
* Priit Rätsep, DK12 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Andrei Tomba, DK14 - Raspberry Pi&lt;br /&gt;
* Vjatšeslav Aprelkov, DK11 - Raspberry Pi&lt;br /&gt;
* Sergei Kaganski, DK14 - Raspberry Pi&lt;br /&gt;
* Jevgeni Jurtsenko, DK13 - LAMP paigaldus&lt;br /&gt;
* Merike Meizner, DK11 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Andrei Pugatšov, DK14 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Joonas Ervald, DK11 - Raspberry Pi&lt;br /&gt;
* Kuldar Teinmann, AK11 - SSH Windows+Linux&lt;br /&gt;
* Lauri Üksti, DK14 - Mac+Windows kaksikkäivitus, uusim LTS, uus vaikimisi töölaua keskkond&lt;br /&gt;
* Pavel Fleišer, 14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Simo Jaanus, 13 - Linuxile Teine Töölaud&lt;br /&gt;
* Marten Tammeleht, 13 - Teine GUI Windowsile&lt;br /&gt;
* Anna Levijeva, 12 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Andero Samelselg, 15 - E-posti krüpto&lt;br /&gt;
* Laura Lenbaum IA18- E-posti krüpto&lt;br /&gt;
* Henri Paves, AK11 - Linuxile teine töölaud&lt;br /&gt;
&lt;br /&gt;
=Probleemilahendus=&lt;br /&gt;
* &#039;&#039;&#039;Eesnimi Perenimi, grupp - valitud teema&#039;&#039;&#039;&lt;br /&gt;
* Egert Närep, DK11 - VPN Linuxis&lt;br /&gt;
* Jaan Veikesaar, 11 - Ekraani värvitemperatuuri muutmine Linuxis&lt;br /&gt;
* Laura Lenbaum, IA18 - Salasõna eemaldamine PDF-faililt.&lt;br /&gt;
* Nele Naris, IA18 - ePub loomine Windowsis&lt;br /&gt;
* Madis Roosioks, D22 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Katrin Lasberg, DK13 - Talveune lubamine või keelamine&lt;br /&gt;
* Andrek Laanemets, 11 - Kasutaja lukustamine Linuxis&lt;br /&gt;
* Kristo Tero, IA18 - Võrgust sõltumatu vabatarkvaraline kaughaldus&lt;br /&gt;
* Siim Kustassoo IA18 - ePub loomine Windowsis&lt;br /&gt;
* Rain Adamson, 41 - Ajastatud toimingute keelamine kasutajatele Linuxis.&lt;br /&gt;
* Rein Remsu, IA17 - Sügavkülmutus Linuxis&lt;br /&gt;
* Jooni Soots, IA17 - Kodukataloogi krüpteerimine&lt;br /&gt;
* Piret Spitsõn, DK11 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Kreet Solnask, IA17 - ePub loomine MacOS-is&lt;br /&gt;
* Tanel Vari, DK 13 - QR kood MacOS-s &lt;br /&gt;
* Jaan Koolmeister, DK 13 - Kiirusetest Linuxis&lt;br /&gt;
* Rando Rommot, 13 - Kasutaja lukustamine Linuxis.&lt;br /&gt;
* Marilyn Võsu, DK11 - Kustunud faili(de) taastamine&lt;br /&gt;
* Triin Palm, IA18 - Pilveketas sõltumata operatsioonisüsteemist&lt;br /&gt;
* Maie Palmeos, DK11 - Automaatne privaatne veebilehitseja Windowsis&lt;br /&gt;
* Dmitri Lukaš, DK11 - ePub loomine Windowsis / Programmide automaatkäivitus / Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Dmitri Tšurjumov. IA17 - Võrguprobleem sõltumata operatsioonisüsteemist.&lt;br /&gt;
* Leonid Grigorjevski, IA18 - Unustatud salasõna taastamine&lt;br /&gt;
* Alan Alliksoo, DK11 - ePub loomine Windowsis&lt;br /&gt;
* Reilika Saks, IA17 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Andres Tambek, DK12 - Külalise kasutaja disainimine Linuxis.&lt;br /&gt;
* Jan Pentšuk, DK12 - Kustunud faili(de) taastamine&lt;br /&gt;
* Filip Fjodorov, AK11 - Ekraani värvitemperatuuri muutmine Windowsis.&lt;br /&gt;
* Karit Kilgi, DK 32 - Ekraani värvitemperatuuri muutmine Windowsis.&lt;br /&gt;
* Eduard Kõre, AK12 - Võrguprobleem sõltumata operatsioonisüsteemist.&lt;br /&gt;
* Jüri Ahhundov, DK11 - Kodukataloogi krüpteerimine.&lt;br /&gt;
* Ave-Liis Saluveer, DK13 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Madis Võrklaev, AK11 - Kioskirežiim Linuxis&lt;br /&gt;
* Marko Esna, AK11 - Ekraani värvitemperatuuri muutmine Windowsis.&lt;br /&gt;
* Alexander Teder, 12 Automaatne Windowsi uuendamine etteantud ajal.&lt;br /&gt;
* Merilyn Merisalu, 13 - Automaatne sisselogimine külalise kontoga&lt;br /&gt;
* Ruti Kerro, IA17 - Programmi sulgemine jõuga ja kokkujooksmise vältimine Linuxis&lt;br /&gt;
* Karl-Hendrik Muuga, 15 - Tekstirežiimis (CLI) käivitamine&lt;br /&gt;
* Markus Kildemaa, 15 - Külalise konto vaikimisi sisse logima&lt;br /&gt;
* Brita Pentšuk, 13 - Failisüsteemi haakimine - NTFS Linuxis&lt;br /&gt;
* Peeter Fridolin, 13 - Skype’i turvaline analoog Linuxile&lt;br /&gt;
* Andrei Tomba, DK14 - Kiirusetest Linuxis&lt;br /&gt;
* Priit Rätsep, DK12 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Annika Kask, 11 - ePubi loomine Windowsis&lt;br /&gt;
* Ingvar Lukas, 14 - Kiire sulgemine, väljalogimine Linuxis.&lt;br /&gt;
* Joonas Ervald, DK11 - Protsessori ülekiirendamine&lt;br /&gt;
* Merike Meizner, DK11, Automaatne privaatne veebilehitsemine Linuxis&lt;br /&gt;
* Kuldar Teinmann, AK11 - Failijagamine FTP-ga Linuxis&lt;br /&gt;
* Madis Niinelt, IA18 - Kioskirežiim Linuxi&lt;br /&gt;
* Pavel Fleišer, 14 - Failijagamine FTP-ga Linuxis / Skype’i turvaline analoog Linuxile&lt;br /&gt;
* Simo Jaanus, 13 - Kiire sulgemine, väljalogimine Linuxis&lt;br /&gt;
* Marten Tammeleht, 13 - Külalise kasutaja disainimine Linuxis&lt;br /&gt;
* Henri Paves, AK11 - Paigaldatud teise töölauakeskkonna eemaldamine&lt;br /&gt;
&lt;br /&gt;
[[Category:Sissejuhatus infotehnoloogiasse ja riistvarasse]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=I027_iseseisvad_t%C3%B6%C3%B6d&amp;diff=122609</id>
		<title>I027 iseseisvad tööd</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=I027_iseseisvad_t%C3%B6%C3%B6d&amp;diff=122609"/>
		<updated>2017-05-20T07:58:11Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Käesolev artikkel on loodud aine &amp;quot;[[Sissejuhatus infotehnoloogiasse ja riistvarasse]] (ainekoodiga I027)&amp;quot; iseseisvate tööde haldamiseks.&lt;br /&gt;
Aines on vaja teha 3 praktilist tööd ja seminaritöö, mis on kõik kirjeldatud &amp;quot;Praktikumid&amp;quot; pealkirja all viidatud dokumendis.&lt;br /&gt;
&lt;br /&gt;
Palun siia dokumenti panna kirja valitud praktikumi nimetus. Ülikooli kasutajaga saavad tudengid ka vikit muuta. Muudatused salvestuvad ka ajaloos.&lt;br /&gt;
&lt;br /&gt;
See üllas eesmärk on, et võimalikult erinevaid praktikumid ja probleemilahendus saaks valitud.&lt;br /&gt;
Siit dokumendist te näete, mida keegi parasjagu tegemas on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=1.praktikum=&lt;br /&gt;
* &#039;&#039;&#039;Eesnimi Perenimi, grupp - valitud teema&#039;&#039;&#039;&lt;br /&gt;
* Mark Selezenev, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Egert Närep, DK11 - SSH vestlus&lt;br /&gt;
* Ingvar Lukas, 14 - Info riistvara kohta&lt;br /&gt;
* Jaan Veikesaar, 11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Rando Rommot, 13 - Linuxile teine töölaud&lt;br /&gt;
* Nele Naris, IA18 - Info riistvara kohta&lt;br /&gt;
* Katrin Lasberg, DK13 - Info riistvara kohta&lt;br /&gt;
* Andrek Laanemets, 11 - Info riistvara kohta&lt;br /&gt;
* Peeter Fridolin, 13 - SSH Windows + Linux&lt;br /&gt;
* Kristo Tero, IA18 - LAMP paigaldus&lt;br /&gt;
* Siim Kustassoo, IA18 - Info riistavara kohta&lt;br /&gt;
* Rain Adamson, 41 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Rein Remsu, IA17 - SSH Windows + Linux&lt;br /&gt;
* Piret Spitsõn, DK11 - Info riistvara kohta&lt;br /&gt;
* Tanel Vari, DK13 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Mihkel-Erik Mägi - Linuxile teine töölaud&lt;br /&gt;
* Jaan Koolmeister, DK 13 - Info riistvara kohta&lt;br /&gt;
* Sander Ratassepp, 13 - Linuxile teine töölaud&lt;br /&gt;
* Marilyn Võsu, DK11 - Info riistvara kohta&lt;br /&gt;
* Triin Palm, IA18 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Maie Palmeos, DK11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Dmitri Lukaš, DK11 - Info ristvara kohta&lt;br /&gt;
* Dmitri Tšurjumov, IA17 - Info riistvara kohta&lt;br /&gt;
* Leonid Grigorjevski,  IA18 - Info riistvara kohta&lt;br /&gt;
* Merilyn Merisalu, 13 - Linuxi serveri paigaldus&lt;br /&gt;
* Iakov Kanyuchka, IA18 - Info riistvara kohta&lt;br /&gt;
* Madis Roosioks, D22 - Info riistvara kohta&lt;br /&gt;
* Rauno Lõhmus, 13 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Maile Mäesalu, DK14 - Info riistvara kohta&lt;br /&gt;
* Alan Alliksoo, DK11 - Info riistvara kohta&lt;br /&gt;
* Reilika Saks, IA17 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Andres Tambek, DK12 - Info riistvara kohta&lt;br /&gt;
* Hardi Tiitus, DK12 - Info riistvara kohta&lt;br /&gt;
* Jan Pentšuk, DK12 - Info riistvara kohta&lt;br /&gt;
* Pille Ulmas, DK13 - Info riistvara kohta&lt;br /&gt;
* Peeter Stamberg, DK 11 - Info riistvara kohta&lt;br /&gt;
* Karit Kilgi, DK 32 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Kreet Solnask, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Kristo Leesmann, 13 - LAMP paigaldus&lt;br /&gt;
* Kristjan Leotoots, DK12 - SSH Windows + Linux&lt;br /&gt;
* Erki Aas, 12 - LAMP paigaldus&lt;br /&gt;
* Liis Talimaa, DK12, Info riistvara kohta&lt;br /&gt;
* Irina Geidarova, IA18 Linuxi tööjaama paigaldus&lt;br /&gt;
* Ruudi Vinter, DK12 - Info riistvara kohta&lt;br /&gt;
* Anton Kuksov, 12 - LAMP paigaldus&lt;br /&gt;
* Eduard Kõre, AK11 - Info riistvara kohta&lt;br /&gt;
* Marie Udam, DK14 - Info riistvara kohta&lt;br /&gt;
* Erik Ehrbach, DK14 - LAMP paigaldus&lt;br /&gt;
* Jüri Ahhundov, DK11 - Info riistvara kohta&lt;br /&gt;
* Kristina Garmatjuk, DK11 - Info riistvara kohta&lt;br /&gt;
* Kaisa Lindström, 15 - Info riistvara kohta&lt;br /&gt;
* Marko Esna, AK11 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Jana Kindlam, DK12 – info riistvara kohta&lt;br /&gt;
* Ave-Liis Saluveer, DK13 - info riistvara kohta&lt;br /&gt;
* Kadi Koppelmann, DK14 - info riistvara kohta&lt;br /&gt;
* Anita Sepp, DK12 - Info riistvara kohta&lt;br /&gt;
* Madis Võrklaev, AK11 - Info riistvara kohta&lt;br /&gt;
* Rudolf Purge, AK11 - Info riistvara kohta&lt;br /&gt;
* Ilmar Ermus, IA17 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Leho Kivistik, 14 - Info riistvara kohta&lt;br /&gt;
* Hannes Mäeorg, 14 - Info riistvara kohta&lt;br /&gt;
* Alexander Teder, 12 - Info riistvara kohta&lt;br /&gt;
* Jüri Vinnal, IA18 - Info riistvara kohta&lt;br /&gt;
* Marko Mõznikov, DK12 - Info riistvara kohta&lt;br /&gt;
* Radne Kaal, IA18 - Info riistvara kohta&lt;br /&gt;
* Kaarel Pärtel, 14 - Lapikute serverite töökorrastamine: Riistvara, Arch ja SSH.&lt;br /&gt;
* Kuldar Teinmann, AK11 - LAMP paigaldus&lt;br /&gt;
* Pavel Fleišer, 14 - LAMP paigaldus&lt;br /&gt;
* Katrin Kello, 14 - Info riistvara kohta&lt;br /&gt;
* Madis Liik, IA18 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Andero Samelselg, 15 - LAMP paigaldus&lt;br /&gt;
* Konstantin Dmitrijev, IA18 - Linuxile teine töölaud&lt;br /&gt;
* Filip Fjodorov, AK11 - Info riistvara kohta&lt;br /&gt;
* Jevgeni Jurtsenko, DK13 - info riistvara kohta&lt;br /&gt;
* Ruti Kerro, IA17 - LAMP paigaldus&lt;br /&gt;
* Artur Kapranov, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Annika Kask, 11 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Anton Meženin, DK14 - Info riistvara kohta&lt;br /&gt;
* Martti-Heiki Must, IA17 - Info riistvara kohta&lt;br /&gt;
* Marten Tammeleht, 13 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Indro Kottise, 15 - Info riistvara kohta&lt;br /&gt;
* Karl-Hendrik Muuga, 15 - LAMP paigaldus&lt;br /&gt;
* Priit Rätsep, DK12 - Info riistvara kohta&lt;br /&gt;
* Merike Meizner, DK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Simo Jaanus, 13 - Info riistvara kohta&lt;br /&gt;
* Henri Annilo, DK13 - SSH Windows + Linux&lt;br /&gt;
* Laura Lenbaum, IA18 - Info riistvara kohta&lt;br /&gt;
* Donna Nurmbek, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Rando Kurel, 12 - Info riistvara kohta&lt;br /&gt;
* Joonas Rihma, DK11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Helen Oppar, DK12 - Info riistvara kohta&lt;br /&gt;
* Tanel Peep, AK11 - Linux serveri paigaldus&lt;br /&gt;
* Brit Valdek, DK14 - Info riistvara kohta&lt;br /&gt;
* Oliver Nurk, 11 - Info riistvara kohta&lt;br /&gt;
* Erik Kaup, 13 - Info riistvara kohta&lt;br /&gt;
* Rait Rand, 11 - Info riistvara kohtan&lt;br /&gt;
* Elizaveta Romanova, 11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Meelis Mikk, 11 - Info riistvara kohta&lt;br /&gt;
* Karoliina Vasli - LAMP paigaldus&lt;br /&gt;
* Aare Taveter - IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Simo Sirkas, 15 - Info riistvara kohta&lt;br /&gt;
* Mihkel Tääkre, 15 - Info riistvara kohta&lt;br /&gt;
* Annely Vattis AK11- Info riistvara kohta&lt;br /&gt;
* Valdo Taevere, 13 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Anni- Bessie Kitt, DK14 - Info riistvara kohta&lt;br /&gt;
* Reio Meiusi, 15 - Info riistvara kohta&lt;br /&gt;
* Marju Niinemaa IA17 - Info riistvara kohta&lt;br /&gt;
* Tarmo Luugus, 14 - Info riistvara kohta&lt;br /&gt;
* Martin Laadoga, 14 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Rasmus Tammets, AK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Sirli Mürk, AK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Rene Väli, DK13 - Info riistvara kohta&lt;br /&gt;
* Andrei Pugatšov, DK14 - Info riistvara kohta&lt;br /&gt;
* Markus Kildemaa, 15 - Linuxile teine töölaud&lt;br /&gt;
* Anna Levijeva, 12 - LAMP paigaldus&lt;br /&gt;
* Maarja-Liisa Pilvik, DK14 - Info riistvara kohta&lt;br /&gt;
* Henrik Prangel, 12 - Info riistvara kohta&lt;br /&gt;
* Vjatsheslav Aprelkov, DK11 - info riistvara kohta&lt;br /&gt;
* Sergei Kaganski, DK14 - info riistvara kohta&lt;br /&gt;
* Andrei Tomba, DK14 - info riistvara kohta&lt;br /&gt;
* Siim Oselein, ISa11 - Kaksikkäivitus Windows + Linux&lt;br /&gt;
* Lisette Noor, D23 - Info riistvara kohta&lt;br /&gt;
* Kirstin Saluveer, DK13 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Lauri Üksti, DK14 - info riistvara kohta&lt;br /&gt;
* Arnika Rästa, ISd14 - info riistvara kohta&lt;br /&gt;
* Alo Avi, ISd14 - LAMP paigaldus&lt;br /&gt;
* Gert Vesterberg, DK11 - LAMP paigaldus&lt;br /&gt;
* Anna Amelkina, AK11 - Info riistvara kohta&lt;br /&gt;
* Egert Loss, DK14, Linux serveri paigaldus&lt;br /&gt;
* Ahto Ahven, 15, Info riistvara kohta&lt;br /&gt;
* Villem Markus Loigom, 11, SSH vestlus&lt;br /&gt;
* Frank Karl Koppel, 11, SSH vestlus&lt;br /&gt;
* Juta Jaama, IA18 - Info riistvara kohta&lt;br /&gt;
* Kaarel Kaine, DK12 - Info riistvara kohta&lt;br /&gt;
* Kert Saarma, 12 - Info riistvara kohta&lt;br /&gt;
* Martin Kokk, 11 - Linuxi serveri paigaldus&lt;br /&gt;
* Artur Tammiste, 14 - Info riistvara kohta&lt;br /&gt;
* Paul Richard Lettens, 12 - Info riistvara kohta&lt;br /&gt;
* Liina Laumets, DK13 - Info riistvara kohta&lt;br /&gt;
* Martin Tammai, 11 - Info riistvara kohta&lt;br /&gt;
* Margus Põlma, 15, LAMP paigaldus&lt;br /&gt;
* Kersti Perandi, DK13 - Info riistvara kohta&lt;br /&gt;
* Tõnis Prants, 15, Linuxi tööjaama paigaldus&lt;br /&gt;
* Andres Kalavus, 12, APT-i analoog Windowsis&lt;br /&gt;
* Sven Veelaid, ISd14 - info riistvara kohta&lt;br /&gt;
* Helen Riisalu, 11 - Info riistvara kohta&lt;br /&gt;
* Aleksandr Petrušihin, DK14 - Info riistvara kohta&lt;br /&gt;
* Kädi-Kristlin Miggur, IA 17 - Info riistvara kohta&lt;br /&gt;
* Karl Erik Õunapuu, 15 - LAMP paigaldus&lt;br /&gt;
* Marite Rammo, 15 - Info riistvara kohta&lt;br /&gt;
* Georg Kahest, AK11 - Linux serveri paigaldus&lt;br /&gt;
* Jekaterina Losseva, DK12 - Info riistvara kohta&lt;br /&gt;
* Madis Niinelt, IA18 - Info riistvara kohta&lt;br /&gt;
* Madis Tammekänd, DK12 - Info riistvara kohta&lt;br /&gt;
* Brita Pentšuk, 13 - Info riistvara kohta&lt;br /&gt;
* Dmitri Kiriljuk, AK11 - Info riistvara kohta&lt;br /&gt;
* Joonas Ervald, DK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Priit Järv, 12 - Info riistvara kohta&lt;br /&gt;
* Henri Paves, AK11 - Info riistvara kohta&lt;br /&gt;
&lt;br /&gt;
=2.praktikum=&lt;br /&gt;
* &#039;&#039;&#039;Eesnimi Perenimi, grupp - valitud teema&#039;&#039;&#039;&lt;br /&gt;
* Mark Selezenev, IA17 - Linuxile Teine Töölaud&lt;br /&gt;
* Egert Närep, DK11 - SSH Windows+Linux&lt;br /&gt;
* Jaan Veikesaar, 11 - Linuxile teine töölaud&lt;br /&gt;
* Rando Rommot, 13 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Katrin Lasberg, DK13 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Andrek Laanemets, 11 - Linuxile teine töölaud&lt;br /&gt;
* Kristo Tero, IA18 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Siim Kustassoo, IA18 - Teine GUI Windowsile&lt;br /&gt;
* Rain Adamson, 41 - LibreOffice&#039;i hulgipaigaldus&lt;br /&gt;
* Rein Remsu, IA17 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Mihkel-Erik Mägi, 13 - Teine GUI Windowsile.&lt;br /&gt;
* Nele Naris, IA18 - LAMP paigaldus&lt;br /&gt;
* Piret Spitsõn, DK11 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Dmitri Tšurjumov, IA17 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Tanel Vari, DK 13 - Info riistvara kohta&lt;br /&gt;
* Jaan Koolmeister, DK 13 - Linuxile teine töölaud&lt;br /&gt;
* Marilyn Võsu, DK11 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Madis Roosioks, D22 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Triin Palm, IA18 - Linuxile teine töölaud&lt;br /&gt;
* Maie Palmeos, DK11 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Dmitri Lukaš, DK11 - Windows Subsystem for Linux / APT&#039;i analoog Windowsile&lt;br /&gt;
* Leonid Grigorjevski, IA18 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Alan Alliksoo, DK11 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Reilika Saks, IA17 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Andres Tambek, DK12 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Hardi Tiitus, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Jan Pentšuk, DK12 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Irina Geidarova, IA18 Info riistvara kohta&lt;br /&gt;
* Karit Kilgi, DK 32 - Teine GUI Windowsile&lt;br /&gt;
* Kreet Solnask, IA17 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Kristjan Leotoots, DK12 - APT&#039;i analoog Windowsile&lt;br /&gt;
* Liis Talimaa, DK12, SSH Windows+Linux&lt;br /&gt;
* Eduard Kõre, AK12 - SSH Windows+Linux&lt;br /&gt;
* Erik Ehrbach, DK14 - SSH Windows+Linux&lt;br /&gt;
* Helen Oppar, DK12 - Linuxile teine töölaud&lt;br /&gt;
* Jüri Ahhundov, DK11 - SSH Windows+Linux&lt;br /&gt;
* Kristina Garmatjuk, DK11 - LAMP paigaldus&lt;br /&gt;
* Jana Kindlam, DK12 – Linuxi tööjaama paigaldus&lt;br /&gt;
* Ave-Liis Saluveer, DK13 - LAMP paigaldus&lt;br /&gt;
* Marko Esna, AK11 - Linuxile teine töölaud&lt;br /&gt;
* Alexander Teder, 12 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Marko Mõznikov, DK12 - LAMP paigaldus&lt;br /&gt;
* Madis Liik, IA18 - Teine GUI Windowsile&lt;br /&gt;
* Annika Kask, 11 - Info riistvara kohta&lt;br /&gt;
* Rando Kurel, 12- Linuxi tööjaama paigaldus&lt;br /&gt;
* Karl-Hendrik Muuga, 15 - LAMP paigaldus&lt;br /&gt;
* Ingvar Lukas, 14 - LAMP paigaldus&lt;br /&gt;
* Markus Kildemaa, 15 - Linuxi serveri paigaldus&lt;br /&gt;
* Brita Pentšuk, 13 - Linuxi serveri paigaldus&lt;br /&gt;
* Anton Kuksov, 12 - MSO-&amp;gt;ODF dokumentide konvertimine&lt;br /&gt;
* Kristo Leesmann, 13 - APT-i analoog Windowsile&lt;br /&gt;
* Sander Ratassepp, 13 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Peeter Fridolin, 13 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Joonas Rihma, DK11 - LAMP paigaldus&lt;br /&gt;
* Priit Rätsep, DK12 - Kaksikkäivitus Windows+Linux&lt;br /&gt;
* Andrei Tomba, DK14 - Raspberry Pi&lt;br /&gt;
* Vjatšeslav Aprelkov, DK11 - Raspberry Pi&lt;br /&gt;
* Sergei Kaganski, DK14 - Raspberry Pi&lt;br /&gt;
* Jevgeni Jurtsenko, DK13 - LAMP paigaldus&lt;br /&gt;
* Merike Meizner, DK11 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Andrei Pugatšov, DK14 - Windows Subsystem for Linux (WSL)&lt;br /&gt;
* Joonas Ervald, DK11 - Raspberry Pi&lt;br /&gt;
* Kuldar Teinmann, AK11 - SSH Windows+Linux&lt;br /&gt;
* Lauri Üksti, DK14 - Mac+Windows kaksikkäivitus, uusim LTS, uus vaikimisi töölaua keskkond&lt;br /&gt;
* Pavel Fleišer, 14 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Simo Jaanus, 13 - Linuxile Teine Töölaud&lt;br /&gt;
* Marten Tammeleht, 13 - Teine GUI Windowsile&lt;br /&gt;
* Anna Levijeva, 12 - Linuxi tööjaama paigaldus&lt;br /&gt;
* Andero Samelselg, 15 - E-posti krüpto&lt;br /&gt;
* Laura Lenbaum IA18- E-posti krüpto&lt;br /&gt;
* Henri Paves, AK11 - Linuxile teine töölaud&lt;br /&gt;
&lt;br /&gt;
=Probleemilahendus=&lt;br /&gt;
* &#039;&#039;&#039;Eesnimi Perenimi, grupp - valitud teema&#039;&#039;&#039;&lt;br /&gt;
* Egert Närep, DK11 - VPN Linuxis&lt;br /&gt;
* Jaan Veikesaar, 11 - Ekraani värvitemperatuuri muutmine Linuxis&lt;br /&gt;
* Laura Lenbaum, IA18 - Salasõna eemaldamine PDF-faililt.&lt;br /&gt;
* Nele Naris, IA18 - ePub loomine Windowsis&lt;br /&gt;
* Madis Roosioks, D22 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Katrin Lasberg, DK13 - Talveune lubamine või keelamine&lt;br /&gt;
* Andrek Laanemets, 11 - Kasutaja lukustamine Linuxis&lt;br /&gt;
* Kristo Tero, IA18 - Võrgust sõltumatu vabatarkvaraline kaughaldus&lt;br /&gt;
* Siim Kustassoo IA18 - ePub loomine Windowsis&lt;br /&gt;
* Rain Adamson, 41 - Ajastatud toimingute keelamine kasutajatele Linuxis.&lt;br /&gt;
* Rein Remsu, IA17 - Sügavkülmutus Linuxis&lt;br /&gt;
* Jooni Soots, IA17 - Kodukataloogi krüpteerimine&lt;br /&gt;
* Piret Spitsõn, DK11 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Kreet Solnask, IA17 - ePub loomine MacOS-is&lt;br /&gt;
* Tanel Vari, DK 13 - QR kood MacOS-s &lt;br /&gt;
* Jaan Koolmeister, DK 13 - Kiirusetest Linuxis&lt;br /&gt;
* Rando Rommot, 13 - Kasutaja lukustamine Linuxis.&lt;br /&gt;
* Marilyn Võsu, DK11 - Kustunud faili(de) taastamine&lt;br /&gt;
* Triin Palm, IA18 - Pilveketas sõltumata operatsioonisüsteemist&lt;br /&gt;
* Maie Palmeos, DK11 - Automaatne privaatne veebilehitseja Windowsis&lt;br /&gt;
* Dmitri Lukaš, DK11 - ePub loomine Windowsis / Programmide automaatkäivitus / Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Dmitri Tšurjumov. IA17 - Võrguprobleem sõltumata operatsioonisüsteemist.&lt;br /&gt;
* Leonid Grigorjevski, IA18 - Unustatud salasõna taastamine&lt;br /&gt;
* Alan Alliksoo, DK11 - ePub loomine Windowsis&lt;br /&gt;
* Reilika Saks, IA17 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Andres Tambek, DK12 - Külalise kasutaja disainimine Linuxis.&lt;br /&gt;
* Jan Pentšuk, DK12 - Kustunud faili(de) taastamine&lt;br /&gt;
* Filip Fjodorov, AK11 - Ekraani värvitemperatuuri muutmine Windowsis.&lt;br /&gt;
* Karit Kilgi, DK 32 - Ekraani värvitemperatuuri muutmine Windowsis.&lt;br /&gt;
* Eduard Kõre, AK12 - Võrguprobleem sõltumata operatsioonisüsteemist.&lt;br /&gt;
* Jüri Ahhundov, DK11 - Kodukataloogi krüpteerimine.&lt;br /&gt;
* Ave-Liis Saluveer, DK13 - Salasõna eemaldamine PDF-faililt&lt;br /&gt;
* Madis Võrklaev, AK11 - Kioskirežiim Linuxis&lt;br /&gt;
* Marko Esna, AK11 - Ekraani värvitemperatuuri muutmine Windowsis.&lt;br /&gt;
* Alexander Teder, 12 Automaatne Windowsi uuendamine etteantud ajal.&lt;br /&gt;
* Merilyn Merisalu, 13 - Automaatne sisselogimine külalise kontoga&lt;br /&gt;
* Ruti Kerro, IA17 - Programmi sulgemine jõuga ja kokkujooksmise vältimine Linuxis&lt;br /&gt;
* Karl-Hendrik Muuga, 15 - Tekstirežiimis (CLI) käivitamine&lt;br /&gt;
* Markus Kildemaa, 15 - Külalise konto vaikimisi sisse logima&lt;br /&gt;
* Brita Pentšuk, 13 - Failisüsteemi haakimine - NTFS Linuxis&lt;br /&gt;
* Peeter Fridolin, 13 - Skype’i turvaline analoog Linuxile&lt;br /&gt;
* Andrei Tomba, DK14 - Kiirusetest Linuxis&lt;br /&gt;
* Priit Rätsep, DK12 - Ekraani värvitemperatuuri muutmine Windowsis&lt;br /&gt;
* Annika Kask, 11 - ePubi loomine Windowsis&lt;br /&gt;
* Ingvar Lukas, 14 - Kiire sulgemine, väljalogimine Linuxis.&lt;br /&gt;
* Joonas Ervald, DK11 - Protsessori ülekiirendamine&lt;br /&gt;
* Merike Meizner, DK11, Automaatne privaatne veebilehitsemine Linuxis&lt;br /&gt;
* Kuldar Teinmann, AK11 - Failijagamine FTP-ga Linuxis&lt;br /&gt;
* Madis Niinelt, IA18 - Kioskirežiim Linuxi&lt;br /&gt;
* Pavel Fleišer, 14 - Failijagamine FTP-ga Linuxis / Skype’i turvaline analoog Linuxile&lt;br /&gt;
* Simo Jaanus, 13 - Kiire sulgemine, väljalogimine Linuxis&lt;br /&gt;
* Marten Tammeleht, 13 - Külalise kasutaja disainimine Linuxis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Sissejuhatus infotehnoloogiasse ja riistvarasse]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Sissejuhatus_infotehnoloogiasse_ja_riistvarasse&amp;diff=119379</id>
		<title>Sissejuhatus infotehnoloogiasse ja riistvarasse</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Sissejuhatus_infotehnoloogiasse_ja_riistvarasse&amp;diff=119379"/>
		<updated>2017-03-25T13:38:02Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Anda lühiülevaade informaatikast tervikuna. Tutvustada arvutiriistvara, -tarkvara ja selle tööpõhimõtteid ning enamlevinud probleeme ja võimalikke lahendusi. Anda lühiülevaade IT arengust.&lt;br /&gt;
&lt;br /&gt;
Loengutes käsitletakse üldiseid teadmisi. Praktikumides omandatakse praktilised oskused. Käesolev õppeaine ei ole samm-haaval juhendite edastamine (osaliselt seda siiski ka tehakse) vaid pigem innustatakse tudengeid ise mõtlema ja infot leidma. Ehk siis tegemist ei ole nõukogudeaegse lähenemisega kus aine konspekt või üks õpik andis vastused kõikidele küsimustele. Siiski on aine tundides, materjalides ja ka käesoleval lehel antud piisavalt viiteid ja juhiseid vajaliku info leidmiseks ning silmaringi laiendamiseks. Selline lähenemine on valdavalt levinud mitmetes kaasaegsetes ülikoolides. Oluline on osata sõnastada probleem ning otsingusõnad interneti otsimootorites. Lisaks on olemas [[#Kiirsuhtlus|õppeaine kiirsuhtluskanal]] info küsimiseks sisuliselt reaalajas. Ka on võimalus oma ekraani jagada erinevail viisil kui ei oska küsida (vt [[#Kiirsuhtlus|kiirsuhtluse]] alla). [[User:Edmund|Õppejõu viki lehel]] on lisaviited erinevate kanalite kaudu suhtlemiseks. Iga tudeng konstrueerib oma arusaama ja teadmised just talle sobival viisil, mis vastab tema hetke teadmistele. Kellel vajalikud teadmised juba olemas siis võimalik sooritada hindamiseks vajalikud tööd ja saab aine kiiremini sooritatud.&lt;br /&gt;
&lt;br /&gt;
Aine kood: I027&lt;br /&gt;
&lt;br /&gt;
Aine läbinud õppur:&lt;br /&gt;
* teab arvutikomponentide otstarvet&lt;br /&gt;
* oskab valida ja hankida arvutiriistvara &lt;br /&gt;
* tunneb levinud operatsioonisüsteeme ja rakendustarkvara ning oskab neid paigaldada ja seadistada&lt;br /&gt;
* oskab lahendada riistvara ja tarkvara probleeme&lt;br /&gt;
&lt;br /&gt;
[http://enos.itcollege.ee/~edmund/inf-hw/aineprogramm/I027_Sissejuhatus-infotehnoloogiasse-ja-riistvarasse.pdf Aineprogramm (PDF)].&lt;br /&gt;
&lt;br /&gt;
ÕISis olev õppematerjali viide viitab siia lehele! Eraldi loenguid ÕISi ei laeta, sest kui teed ainet järele ja ei deklareeri siis ei näe ÕIS&#039;is asuvaid materjale. Aine viki on üks ja ainus koht kuhu kõik koondub ja eraldi asuvad materjalid on siit lehelt viidatud.&lt;br /&gt;
&lt;br /&gt;
=Töövahendid=&lt;br /&gt;
Kuigi EIK&#039;is saab kasutada virtuaallaboreid ja arvutiklassides olevat tehnikat siis kõiki asju virtuaallaborites teha ei saa ja kui soovitakse kaasa võtta virtuaalmasinaid siis on seda lihtsam teha oma (süle)arvutiga.&lt;br /&gt;
* võimalusel palun võtta (süle)arvuti kaasa. Võimalusel võib juba eelnevalt ette valmistada ka [[#Virtuaalmasinad|virtuaalmasinad]]&lt;br /&gt;
* USB-mälupulk, soovitavalt 8 GB või suurem ([http://upload.itcollege.ee/edmund/iso/ alglaaditava ISO] kirjutamiseks) - olenevalt ISO-fail suurusest võib sobida ka väiksem&lt;br /&gt;
* microSD kaart, soovitavalt 16 GB või suurem ([http://upload.itcollege.ee/edmund/Raspberry-Pi/ Raspberry Pi] sees kasutamiseks)&lt;br /&gt;
&lt;br /&gt;
=Õppejõud=&lt;br /&gt;
[[User:Edmund|Edmund Laugasson]], lisaks külalisõppejõud ja abilised.&lt;br /&gt;
&lt;br /&gt;
Abiks on EIK&#039;i tudeng Artur Ovtsinnikov, lisaks peavad loenguid Mati Tombak (TTÜ), Märt Kalmo (EIK), Anti Kuiv (F9 Distribution Estonia OÜ) ja võimalik, et veel keegi.&lt;br /&gt;
&lt;br /&gt;
=Õpimapp=&lt;br /&gt;
Valida vabalt pilvepõhine keskkond, mida kasutada õpimapina. Jagada kataloog õppejõule, soovitavalt muutmisõigusega.&lt;br /&gt;
&lt;br /&gt;
Eesmärgid:&lt;br /&gt;
*infovahetus õppejõuga&lt;br /&gt;
**tööde esitamised - praktilised tööd, seminaritöö&lt;br /&gt;
**tagasiside - seda võib küsida ka kiirsuhtluse, e-posti, personaalse suhtlemise vms teel&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://goo.gl/forms/VFBz1VeahJ44DBiv1 Veebivorm]&#039;&#039;&#039; - kasutada esmase info, sh õpimapi lingi edastamiseks õppejõule.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;NB! Salvestada peale vastamist antud link endale kindlasse kohta!&amp;lt;/span&amp;gt;&lt;br /&gt;
See on vajalik edasiseks info muutmiseks.&lt;br /&gt;
&lt;br /&gt;
=Kiirsuhtlus=&lt;br /&gt;
* kiirsuhtlus (tekst, failivahetus, vajadusel ka heli ja video) aine kanalis &#039;&#039;#eik-inf-hw:matrix.org&#039;&#039; (server: [http://matrix.org/ matrix.org], klientprogramm: [https://riot.im Riot.im]).&lt;br /&gt;
* vajadusel kasutame ka [https://meet.jit.si/I027 aine veebinarikeskkonda], mille kohta [http://enos.itcollege.ee/~edmund/materials/videoconference.txt leiab lisainfot siit]. Veebinarikeskkond võimaldab ka (vaid vaatamisõigusega) ekraani jagada. Vajadusel kasutada [https://en.wikipedia.org/wiki/Comparison_of_remote_desktop_software mõnda teist ekraanijagamise tarkvara] kui soovitakse ka nt muutmisõigust anda.&lt;br /&gt;
&lt;br /&gt;
Ärge kartke küsida - seda eriti aine kiirsuhtluskanalis! Seal on mul abiks ka üks tudeng küsimustele vastamisel. Kui ei küsi siis ka vastuseid ei saa. Ei ole olemas rumalaid küsimusi - on vaid rumalad vastused! Sageli on paljudel sama küsimus. Küsides aine kanalis saavad paljud vastuse küsimusele. Kui soovib personaalselt siis küsige - oluline, et küsimused leiaksid vastused! Kui ei oska küsida siis võimalus ka oma ekraani jagada ja saada vastused tundmatutele olukordadele.&lt;br /&gt;
&lt;br /&gt;
=Aine materjalid=&lt;br /&gt;
* [http://enos.itcollege.ee/~edmund/inf-hw/ aine materjalid]&lt;br /&gt;
* [http://enos.itcollege.ee/~edmund/inf-hw/boole-algebra/ külalisesineja prof Mati Tombak (TTÜ) materjalid teemal &amp;quot;Boole&#039;i algebra&amp;quot;]&lt;br /&gt;
* külalisesineja [http://enos.itcollege.ee/~edmund/inf-hw/IT-v22rtusahel_anti-kuiv/anti-kuiv-kontakt.txt Anti Kuiv] ([https://www.f9baltic.com/ F9 Baltic OÜ]) [http://enos.itcollege.ee/~edmund/inf-hw/IT-v22rtusahel_anti-kuiv/ materjalid teemal &amp;quot;IT väärtusahel&amp;quot;],&lt;br /&gt;
==Videosalvestused==&lt;br /&gt;
* [https://echo360.e-ope.ee/ess/portal/section/a71b7bc2-73d4-4880-89fa-c8d73f613b89 päevaõppe videosalvestused]&lt;br /&gt;
* [https://echo360.e-ope.ee/ess/portal/section/917d272f-4942-44ab-b787-2dcfb4f3e451 õhtuõppe videosalvestused]&lt;br /&gt;
* [https://echo360.e-ope.ee/ess/portal/section/36c58c76-b4ad-4635-92b8-3bd106caf936 kaugõppe videosalvestused]&lt;br /&gt;
&lt;br /&gt;
==Praktikumid==&lt;br /&gt;
* praktikumid ja seminaritöö on [https://docs.google.com/spreadsheets/d/1zl0qWUQ0ajrrJ0o4ranINnTIzmcCZW_tm6exR1XR6ME/edit?usp=sharing kirjeldatud siin failis].&lt;br /&gt;
** seminaritöö grupid [https://goo.gl/forms/TAtyA7BBTqbZM0K83 palun kirja panna siia veebivormi]&lt;br /&gt;
* [http://enos.itcollege.ee/~edmund/inf-hw/praktikumid/ tunnis kirjutatud logifailid]&lt;br /&gt;
* vt ka [[#Muud materjalid|muud materjalid]] all olevat infot&lt;br /&gt;
* [http://enos.itcollege.ee/~edmund/materials/labs/virtuaallaborid.pdf virtuaallaborite kasutamise juhend]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Palun valitud praktikumid ja probleemilahendus [https://wiki.itcollege.ee/index.php/I027_iseseisvad_tööd panna kirja siia viki artiklisse].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Praktikumide raportite koostamisel julgustan kasutama ka käsurea salvestamist ekraanivideona - vt [[#Lingid|linkide all]] käesoleva viki lõpus.&amp;lt;br&amp;gt;&lt;br /&gt;
Seal ka viited käsurea pildistamiseks juhul kui peaks vaja olema vaid käsureal töötavat programmi kasutada.&lt;br /&gt;
&lt;br /&gt;
===Virtuaalmasinad===&lt;br /&gt;
* tudengitele mõeldud virtuaalmasinad leiab keskkonnast I-Tee aadressil https://i-tee.itcollege.ee/ - sinna saab ülikooli kasutajaga sisse logida&lt;br /&gt;
** [http://enos.itcollege.ee/~edmund/materials/labs/virtuaallaborid.pdf virtuaallaborite kasutamise juhend]&lt;br /&gt;
** leiate eest laborid nimedega &#039;&#039;inf-hw-lab1...3&#039;&#039; ja &#039;&#039;inf-hw-training&#039;&#039; - viimane (training) siis harjutamiseks&lt;br /&gt;
** [http://enos.itcollege.ee/~edmund/inf-hw/praktikumid/virtuaallaborid.txt võrkude (jm) seadistamine virtuaalmasinates]&lt;br /&gt;
** [http://enos.itcollege.ee/~edmund/materials/ssh.txt SSH võtmefailiga sisselogimise seadistamine] (inglise keeles)&lt;br /&gt;
* virtualiseerimistarkvara: [https://www.virtualbox.org/ VirtualBox], võib paigaldada ka laienduste paketi (&#039;&#039;extension pack&#039;&#039;) - edaspidi probleemide vältimiseks tagada, et need oleksid sama versiooni.&lt;br /&gt;
** enne katsetamist teha ära &#039;&#039;[https://www.virtualbox.org/manual/ch01.html#snapshots snapshot]&#039;&#039;&lt;br /&gt;
** võib ka [https://www.virtualbox.org/manual/ch01.html#ovf importida] õppejõu poolt valmistatud [http://upload.itcollege.ee/edmund/ova/inf-hw/ virtuaalmasinad]&lt;br /&gt;
* Ubuntu Linux, uusim [https://wiki.ubuntu.com/LTS LTS]-versioon -&amp;gt; vt [http://upload.itcollege.ee/edmund/iso/ ISO-failid]&lt;br /&gt;
** Desktop: [https://ubuntu-mate.org/ Ubuntu MATE]&lt;br /&gt;
** Server: [https://www.ubuntu.com/download/server Ubuntu Server]&lt;br /&gt;
* lisaks võiks olemas olla ka MS Windows 10 Pro virtuaalmasin ([http://upload.itcollege.ee/edmund/iso/microsoft/ Microsofti allalaadimise viited]).&lt;br /&gt;
* näidisena vaikimisi seadetega paigaldused (ideaalis tuleks lisaks saalealale ka kodukataloog /home eraldi kettajaole paigaldada, serveris on soovitav ka /var eraldi kettajaole panna)&lt;br /&gt;
** [http://enos.itcollege.ee/~edmund/osadmin/est/praktikumid/OSadmin-ubuntu-desktop-install.pdf Ubuntu tööjaam]&lt;br /&gt;
** [http://enos.itcollege.ee/~edmund/osadmin/est/praktikumid/OSadmin-ubuntu-server-install.pdf Ubuntu server]&lt;br /&gt;
&lt;br /&gt;
==Muud materjalid==&lt;br /&gt;
* [https://drive.google.com/drive/folders/0B2oPX5ATEw20Uk9IMXF4N1FiSk0?usp=sharing õppetöö käigus kogunenud info]&lt;br /&gt;
* [http://tinyurl.com/i027praktikumid Henri Paves&#039;i (AK11) poolt loodud (mõnede) praktikumide videoõpetused.]&lt;br /&gt;
&lt;br /&gt;
=Hindamine=&lt;br /&gt;
Eksamihinne kujuneb jooksvate tööde põhjal:&lt;br /&gt;
* 2 praktikumi, á 25p, 1.praktikumi tähtaeg: 26.03.2017 kell 23.59. 2.praktikum 25.05.2017 kell 23.59.&lt;br /&gt;
* 1 probleemilahendus - punktid vastavalt valitud ülesandele (arvestuslikult vähemalt 5p), tähtaeg 25.05.2017 kell 23.59.&lt;br /&gt;
* seminaritöö 45p, tähtaeg (esitamine loengus): päevaõpe: 6.04.2017; õhtuõpe: 3.04.2017, kaugõpe: 7.04.2017&lt;br /&gt;
* kõikidele õppevormidele kõikide tööde esitamise viimane tähtaeg: 25.05.2017 kell 23.59.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;NB! Soovitav on mitte jätta töid viimasele minutile!&amp;lt;/span&amp;gt;&lt;br /&gt;
* Kui soovite teha rohkem praktikume kui nõutud siis neid arvestatakse 50% punktidest.&lt;br /&gt;
&lt;br /&gt;
=Lingid=&lt;br /&gt;
* [http://enos.itcollege.ee/~edmund/inf-hw/viiteid.html viiteid otsinguteks]&lt;br /&gt;
*&#039;&#039;&#039;[http://enos.itcollege.ee/~edmund/materials/links.html Linuxiga jm vabatarkvaraga seotud viiteid]&#039;&#039;&#039;&lt;br /&gt;
* [http://enos.itcollege.ee/~edmund/materials/news.html Linuxi uudised, ajakirjad]&lt;br /&gt;
* vabavaraga seotud terminid: [http://enos.itcollege.ee/~edmund/materials/Floss-vabavara-skeem.png EIK serveris] | [https://viki.pingviin.org/images/9/97/Floss-vabavara-skeem.png originaalasukoht]&lt;br /&gt;
* https://sites.google.com/site/easylinuxtipsproject/&lt;br /&gt;
* käsureal ekraanipiltide tegemiseks [https://en.wikipedia.org/wiki/Scrot scrot] (vt [http://alternativeto.net/software/scrot/?license=opensource alternatiivid]), [https://github.com/naelstrof/maim maim]&lt;br /&gt;
* käsurea salvestamine ekraanivideona: [[Terminali sessioonide salvestus ja jagamine]], vt ka [http://alternativeto.net/software/asciinema/ alternatiive] ja [http://tuxdiary.com/tag/record-terminal-linux/ veel programme]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Desktop_environment töölauakeskkond] OS&#039;ides koos näidetega&lt;br /&gt;
* https://www.youtube.com/user/japolegikeeruline - saatesari kus räägitakse erinevatest IT tahkudest&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PLjTBvsv2Ws0ja-ovwPAEfP8CY0cIvFYMt assapauk] - MKM&#039;i projekt &amp;quot;Assapauk&amp;quot;, küberturvalisuse näidisprobleemid tavakasutaja tasandil&lt;br /&gt;
&lt;br /&gt;
[[Category:Sissejuhatus infotehnoloogiasse ja riistvarasse]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Sissejuhatus_infotehnoloogiasse_ja_riistvarasse&amp;diff=118354</id>
		<title>Sissejuhatus infotehnoloogiasse ja riistvarasse</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Sissejuhatus_infotehnoloogiasse_ja_riistvarasse&amp;diff=118354"/>
		<updated>2017-03-04T19:52:47Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Anda lühiülevaade informaatikast tervikuna. Tutvustada arvutiriistvara, -tarkvara ja selle tööpõhimõtteid ning enamlevinud probleeme ja võimalikke lahendusi. Anda lühiülevaade IT arengust.&lt;br /&gt;
&lt;br /&gt;
Loengutes käsitletakse üldiseid teadmiseid. Praktikumides omandatakse praktilised oskused.&lt;br /&gt;
&lt;br /&gt;
Aine kood: I027&lt;br /&gt;
&lt;br /&gt;
Aine läbinud õppur:&lt;br /&gt;
* teab arvutikomponentide otstarvet&lt;br /&gt;
* oskab valida ja hankida arvutiriistvara &lt;br /&gt;
* tunneb levinud operatsioonisüsteeme ja rakendustarkvara ning oskab neid paigaldada ja seadistada&lt;br /&gt;
* oskab lahendada riistvara ja tarkvara probleeme&lt;br /&gt;
&lt;br /&gt;
[http://enos.itcollege.ee/~edmund/inf-hw/aineprogramm/I027_Sissejuhatus-infotehnoloogiasse-ja-riistvarasse.pdf Aineprogramm (PDF)].&lt;br /&gt;
&lt;br /&gt;
ÕISis olev õppematerjali viide viitab siia lehele! Eraldi loenguid ÕISi ei laeta, sest kui teed ainet järele ja ei deklareeri siis ei näe ÕIS&#039;is asuvaid materjale. Aine viki on üks ja ainus koht kuhu kõik koondub ja eraldi asuvad materjalid on siit lehelt viidatud.&lt;br /&gt;
&lt;br /&gt;
=Töövahendid=&lt;br /&gt;
Kuigi EIK&#039;is saab kasutada virtuaallaboreid ja arvutiklassides olevat tehnikat siis kõiki asju virtuaallaborites teha ei saa ja kui soovitakse kaasa võtta virtuaalmasinaid siis on seda lihtsam teha oma (süle)arvutiga.&lt;br /&gt;
* võimalusel palun võtta (süle)arvuti kaasa. Võimalusel võib juba eelnevalt ette valmistada ka [[#Virtuaalmasinad|virtuaalmasinad]]&lt;br /&gt;
* USB-mälupulk, soovitavalt 8 GB või suurem ([http://upload.itcollege.ee/edmund/iso/ alglaaditava ISO] kirjutamiseks) - olenevalt ISO-fail suurusest võib sobida ka väiksem&lt;br /&gt;
* microSD kaart, soovitavalt 16 GB või suurem ([http://upload.itcollege.ee/edmund/Raspberry-Pi/ Raspberry Pi] sees kasutamiseks)&lt;br /&gt;
&lt;br /&gt;
=Õppejõud=&lt;br /&gt;
[[User:Edmund|Edmund Laugasson]], lisaks külalisõppejõud ja abilised.&lt;br /&gt;
&lt;br /&gt;
Abiks on EIK&#039;i tudeng Artur Ovtsinnikov, lisaks peavad loenguid Mati Tombak (TTÜ), Märt Kalmo (EIK), Anti Kuiv (F9 Distribution Estonia OÜ) ja võimalik, et veel keegi.&lt;br /&gt;
&lt;br /&gt;
=Õpimapp=&lt;br /&gt;
Valida vabalt pilvepõhine keskkond, mida kasutada õpimapina. Jagada kataloog õppejõule, soovitavalt muutmisõigusega.&lt;br /&gt;
&lt;br /&gt;
Eesmärgid:&lt;br /&gt;
*infovahetus õppejõuga&lt;br /&gt;
**tööde esitamised - praktilised tööd, seminaritöö&lt;br /&gt;
**tagasiside - seda võib küsida ka kiirsuhtluse, e-posti, personaalse suhtlemise vms teel&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[https://goo.gl/forms/VFBz1VeahJ44DBiv1 Veebivorm]&#039;&#039;&#039; - kasutada esmase info, sh õpimapi lingi edastamiseks õppejõule.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;NB! Salvestada peale vastamist antud link endale kindlasse kohta!&amp;lt;/span&amp;gt;&lt;br /&gt;
See on vajalik edasiseks info muutmiseks.&lt;br /&gt;
&lt;br /&gt;
=Kiirsuhtlus=&lt;br /&gt;
* kiirsuhtlus (tekst, failivahetus, vajadusel ka heli ja video) aine kanalis &#039;&#039;#eik-inf-hw:matrix.org&#039;&#039; (server: [http://matrix.org/ matrix.org], klientprogramm: [https://riot.im Riot.im]).&lt;br /&gt;
* vajadusel kasutame ka [https://meet.jit.si/I027 aine veebinarikeskkonda], mille kohta [http://enos.itcollege.ee/~edmund/materials/videoconference.txt leiab lisainfot siit].&lt;br /&gt;
&lt;br /&gt;
Ärge kartke küsida - seda eriti aine kiirsuhtluskanalis! Seal on mul abiks ka üks tudeng küsimustele vastamisel. Kui ei küsi siis ka vastuseid ei saa. Ei ole olemas rumalaid küsimusi - on vaid rumalad vastused! Sageli on paljudel sama küsimus. Küsides aine kanalis saavad paljud vastuse küsimusele. Kui soovib personaalselt siis küsige - oluline, et küsimused leiaksid vastused!&lt;br /&gt;
&lt;br /&gt;
=Aine materjalid=&lt;br /&gt;
* [http://enos.itcollege.ee/~edmund/inf-hw/ aine materjalid]&lt;br /&gt;
* [http://enos.itcollege.ee/~edmund/inf-hw/boole-algebra/ külalisesineja prof Mati Tombak (TTÜ) materjalid teemal &amp;quot;Boole&#039;i algebra&amp;quot;]&lt;br /&gt;
* [http://enos.itcollege.ee/~edmund/inf-hw/IT-v22rtusahel_anti-kuiv/ külalisesineja Anti Kuiv (F9 Baltic OÜ) materjalid teemal &amp;quot;IT väärtusahel&amp;quot;]&lt;br /&gt;
==Videosalvestused==&lt;br /&gt;
* [https://echo360.e-ope.ee/ess/portal/section/a71b7bc2-73d4-4880-89fa-c8d73f613b89 päeva-, õhtuõppe videosalvestused]&lt;br /&gt;
* [https://echo360.e-ope.ee/ess/portal/section/36c58c76-b4ad-4635-92b8-3bd106caf936 kaugõppe videosalvestused]&lt;br /&gt;
==Praktikumid==&lt;br /&gt;
* praktikumid ja seminaritöö on [https://docs.google.com/spreadsheets/d/1zl0qWUQ0ajrrJ0o4ranINnTIzmcCZW_tm6exR1XR6ME/edit?usp=sharing kirjeldatud siin failis].&lt;br /&gt;
** seminaritöö grupid [https://goo.gl/forms/TAtyA7BBTqbZM0K83 palun kirja panna siia veebivormi]&lt;br /&gt;
* [http://enos.itcollege.ee/~edmund/inf-hw/praktikumid/ tunnis kirjutatud logifailid]&lt;br /&gt;
* vt ka [[#Muud materjalid|muud materjalid]] all olevat infot&lt;br /&gt;
* [http://enos.itcollege.ee/~edmund/materials/labs/virtuaallaborid.pdf virtuaallaborite kasutamise juhend]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NB! Palun valitud praktikumid ja probleemilahendus [https://wiki.itcollege.ee/index.php/I027_iseseisvad_tööd panna kirja siia viki artiklisse].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Praktikumide raportite koostamisel julgustan kasutama ka käsurea salvestamist ekraanivideona - vt [[#Lingid|linkide all]] käesoleva viki lõpus.&amp;lt;br&amp;gt;&lt;br /&gt;
Seal ka viited käsurea pildistamiseks juhul kui peaks vaja olema vaid käsureal töötavat programmi kasutada.&lt;br /&gt;
&lt;br /&gt;
===Virtuaalmasinad===&lt;br /&gt;
* tudengitele mõeldud virtuaalmasinad leiab keskkonnast I-Tee aadressil https://i-tee.itcollege.ee/ - sinna saab ülikooli kasutajaga sisse logida&lt;br /&gt;
** leiate eest laborid nimedega &#039;&#039;inf-hw-lab1...3&#039;&#039; ja &#039;&#039;inf-hw-training&#039;&#039; - viimane (training) siis harjutamiseks&lt;br /&gt;
* virtualiseerimistarkvara: [https://www.virtualbox.org/ VirtualBox], võib paigaldada ka laienduste paketi (&#039;&#039;extension pack&#039;&#039;) - edaspidi probleemide vältimiseks tagada, et need oleksid sama versiooni.&lt;br /&gt;
** enne katsetamist teha ära &#039;&#039;[https://www.virtualbox.org/manual/ch01.html#snapshots snapshot]&#039;&#039;&lt;br /&gt;
** võib ka [https://www.virtualbox.org/manual/ch01.html#ovf importida] õppejõu poolt valmistatud [http://upload.itcollege.ee/edmund/ova/inf-hw/ virtuaalmasinad]&lt;br /&gt;
* Ubuntu Linux, uusim [https://wiki.ubuntu.com/LTS LTS]-versioon -&amp;gt; vt [http://upload.itcollege.ee/edmund/iso/ ISO-failid]&lt;br /&gt;
** Desktop: [https://ubuntu-mate.org/ Ubuntu MATE]&lt;br /&gt;
** Server: [https://www.ubuntu.com/download/server Ubuntu Server]&lt;br /&gt;
* lisaks võiks olemas olla ka MS Windows 10 Pro virtuaalmasin ([http://upload.itcollege.ee/edmund/iso/microsoft/ Microsofti allalaadimise viited]).&lt;br /&gt;
* [http://enos.itcollege.ee/~edmund/materials/labs/virtuaallaborid.pdf virtuaallaborite kasutamise juhend]&lt;br /&gt;
* näidisena vaikimisi seadetega paigaldused (ideaalis tuleks lisaks saalealale ka kodukataloog /home eraldi kettajaole paigaldada, serveris on soovitav ka /var eraldi kettajaole panna)&lt;br /&gt;
** [http://enos.itcollege.ee/~edmund/osadmin/est/praktikumid/OSadmin-ubuntu-desktop-install.pdf Ubuntu tööjaam]&lt;br /&gt;
** [http://enos.itcollege.ee/~edmund/osadmin/est/praktikumid/OSadmin-ubuntu-server-install.pdf Ubuntu server]&lt;br /&gt;
&lt;br /&gt;
==Muud materjalid==&lt;br /&gt;
* [https://drive.google.com/drive/folders/0B2oPX5ATEw20Uk9IMXF4N1FiSk0?usp=sharing õppetöö käigus kogunenud info]&lt;br /&gt;
* (Mõnede) praktikumide videoõpetused: [http://tinyurl.com/laugassonhelp http://tinyurl.com/laugassonhelp]&lt;br /&gt;
&lt;br /&gt;
=Hindamine=&lt;br /&gt;
Eksamihinne kujuneb jooksvate tööde põhjal:&lt;br /&gt;
* 2 praktikumi, á 25p, 1.praktikumi tähtaeg: 26.03.2017 kell 23.59. 2.praktikum 25.05.2017 kell 23.59.&lt;br /&gt;
* 1 probleemilahendus - punktid vastavalt valitud ülesandele (arvestuslikult vähemalt 5p), tähtaeg 25.05.2017 kell 23.59.&lt;br /&gt;
* seminaritöö 45p, tähtaeg (esitamine loengus): päevaõpe: 6.04.2017; õhtuõpe: 3.04.2017, kaugõpe: 7.04.2017&lt;br /&gt;
* kõikidele õppevormidele kõikide tööde esitamise viimane tähtaeg: 25.05.2017 kell 23.59.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;NB! Soovitav on mitte jätta töid viimasele minutile!&amp;lt;/span&amp;gt;&lt;br /&gt;
* Kui soovite teha rohkem praktikume kui nõutud siis neid arvestatakse 50% punktidest.&lt;br /&gt;
&lt;br /&gt;
=Lingid=&lt;br /&gt;
* [http://enos.itcollege.ee/~edmund/inf-hw/viiteid.html viiteid otsinguteks]&lt;br /&gt;
*&#039;&#039;&#039;[http://enos.itcollege.ee/~edmund/materials/links.html Linuxiga jm vabatarkvaraga seotud viiteid]&#039;&#039;&#039;&lt;br /&gt;
* [http://enos.itcollege.ee/~edmund/materials/news.html Linuxi uudised, ajakirjad]&lt;br /&gt;
* vabavaraga seotud terminid: [http://enos.itcollege.ee/~edmund/materials/Floss-vabavara-skeem.png EIK serveris] | [https://viki.pingviin.org/images/9/97/Floss-vabavara-skeem.png originaalasukoht]&lt;br /&gt;
* https://sites.google.com/site/easylinuxtipsproject/&lt;br /&gt;
* käsureal ekraanipiltide tegemiseks [https://en.wikipedia.org/wiki/Scrot scrot] (vt [http://alternativeto.net/software/scrot/?license=opensource alternatiivid]), [https://github.com/naelstrof/maim maim]&lt;br /&gt;
* käsurea salvestamine ekraanivideona: [[Terminali sessioonide salvestus ja jagamine]], vt ka [http://alternativeto.net/software/asciinema/ alternatiive] ja [http://tuxdiary.com/tag/record-terminal-linux/ veel programme]&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Desktop_environment töölauakeskkond] OS&#039;ides koos näidetega&lt;br /&gt;
* https://www.youtube.com/user/japolegikeeruline - saatesari kus räägitakse erinevatest IT tahkudest&lt;br /&gt;
* [https://www.youtube.com/playlist?list=PLjTBvsv2Ws0ja-ovwPAEfP8CY0cIvFYMt assapauk] - MKM&#039;i projekt &amp;quot;Assapauk&amp;quot;, küberturvalisuse näidisprobleemid tavakasutaja tasandil&lt;br /&gt;
&lt;br /&gt;
[[Category:Sissejuhatus infotehnoloogiasse ja riistvarasse]]&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=User:Hpaves&amp;diff=110681</id>
		<title>User:Hpaves</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=User:Hpaves&amp;diff=110681"/>
		<updated>2016-10-19T14:49:58Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Erialatutvustus 2016 kaugõpe]]&lt;br /&gt;
=Erialatutvustuse aine arvestustöö=&lt;br /&gt;
Autor: Henri Paves&amp;lt;ref&amp;gt;[https://wiki.itcollege.ee/index.php/User:Kkarmo Erialatutvustuse aine arvestustöö näidis]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esitamise kuupäev: 19. oktoober 2016&lt;br /&gt;
&lt;br /&gt;
==Essee (ehk mida sain teada)==&lt;br /&gt;
===Pidulik avaloeng===&lt;br /&gt;
* kõik itcollege.ee postkasti saadetud kirjad loetakse kätte saanuks&lt;br /&gt;
* õppemaksu võib maksta ka asutus&lt;br /&gt;
* IT kolledž kasutab TTÜ raamatukogu&lt;br /&gt;
&lt;br /&gt;
===Vähempidulik avaloeng&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/030fe955-3bb8-443a-b416-72538f5e408e Õpingukorraldus ja erialatutvustus. Kristjan Karmo, 08.10 loengusalvestus]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
* lõputöö kaitsmine salvestatakse&lt;br /&gt;
* ära tee õppekavast spagetti! &lt;br /&gt;
* ÕPI PROGRAMMEERIMA!!! Automatiseeri oma töö&lt;br /&gt;
* intovert saab ennast edevaks sundida!&lt;br /&gt;
&lt;br /&gt;
===Sinna ja tagasi. Arhitekti lugu. Andres Kütt&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/d9ec2ab9-14d4-4e0a-9c5c-c26e5093060f Sinna ja tagasi. Arhitekti lugu. Andres Kütt, 31.08 loengusalvestus]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
* nõukogude aja kaks alternatiivset elustiili: arvutisse või punkariks (muid variante pole)&lt;br /&gt;
* hoia akadeemilise bürokraatia osas silm lahti&lt;br /&gt;
* kinnitas arusaama, et koolil ja koolil on vahe; mine edasi nii ägedasse kooli kui vähegi saad!&lt;br /&gt;
* aine silt ja sealt saadav sisu ei lähe ülikoolis enamasti kokku&lt;br /&gt;
&lt;br /&gt;
===Testimine ja startupid. Kristel &amp;amp; Marko Kruustük (Testlio)&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/bdb1f592-2bdc-4f3e-96e5-68a65306cbe6 Testimine ja startupid. Kristel &amp;amp; Marko Kruustük, 07.09 loengusalvestus]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
* #estonianmafia&lt;br /&gt;
* kui õpid ja töötad välismaal siis hakkad tõesti eesti keelt ära unustama&lt;br /&gt;
* kõik töötas, kuid kuna raamatupidaja väga midagi ei küsinud, siis ei olnud järelikult hea raamatupidaja&lt;br /&gt;
* ilma tohutu eeltööta läbimurdeid pole ideeliselt olemas&lt;br /&gt;
* hackathonil osalemisest hea ülevaade, sh kui palju reisimist seoses startupiga on&lt;br /&gt;
&lt;br /&gt;
===Süsadminnimisest. Lembitu Ling aka Snakeman&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/edf31936-fa06-4f1a-8c1f-18e4edb07f76 Süsadminnimisest. Lembitu Ling, 14.09 loengusalvestus]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
* arvutimaailmas oli veel 20 aastat tagasi periood kus tasus juppe parandada&lt;br /&gt;
* ära pelga MAN käsu lugemise peale aega kulutada&lt;br /&gt;
* üle kolme korra ei tehta asja käsitsi (skripti ära)&lt;br /&gt;
* ei tohi lasta endale pähe istuda -- kui teenus 24/7 siis minimaalselt kolm adminni, parem kui 4-5&lt;br /&gt;
* kui sul on keskhaldustarkvara, siis kasuta seda (ja võimalikult varajases faasis)&lt;br /&gt;
* hea süsadmin on laisk süsadmin&lt;br /&gt;
* ärge tehke endale tööalaseid sohilapsi (tasuta tehtud töö tekitab omakorda tasuta tööd)&lt;br /&gt;
* hea süsadmin on süsteemiarhitekti parem käsi ja informeerib teda keskkonna võimekusest ja teab muudatuste tagajärgi; oskab kirjeldada mittefunktsionaalseid nõudeid&lt;br /&gt;
* mittefunktsionaalne nõue -- ideeliselt logimine; süsadmin peab teadma milliseid vaja on&lt;br /&gt;
* süsadmin peab olema halb inimene&lt;br /&gt;
&lt;br /&gt;
===IT tööturg. Andres Septer | Karjäärikäänakud. Einar Koltšanov (SCRUM master)&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/c9233ad5-0977-4ea7-9065-3d46012832cc IT tööturg. Andres Septer | Karjäärikäänakud. Einar Koltšanov 21.09 loengusalvestus]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
* suhted luuakse ülikoolis, CV.ee on jäätmehunnik (esimene kool kus sellest ausalt räägitakse)&lt;br /&gt;
* tutvusringkonnast peaksid saama nädala ajaga posu tööpakkumisi -- siis oled õigesti teinud&lt;br /&gt;
* Eestis on sunnitud mobiilsus -- palga- ja ametikõrgenduse saamiseks tuleb töökohta vahetada&lt;br /&gt;
* Eestis käib palgatõusu küsimine lahkumisavalduse kaudu (ja iga kolme aasta tagant uuesti)&lt;br /&gt;
* eelmised kaks on Eesti-spetsiifilised probleemid&lt;br /&gt;
* 200-300 töötajaga firma on normaalne töökoht, väikefirma on kahtlane&lt;br /&gt;
* oled ÜKSI ja reaalset puhkust ei saa , kuna raha pole ostetakse rämpsu kokku ja peab ka uuendades vanu süsteeme edasi toetama (vältida eriti kui oled admin)&lt;br /&gt;
* väikefirmas võib tekkida eeldus, et kui asi elektriga töötab, siis on see IT (nii tõsi!)&lt;br /&gt;
* töökohta valides peab jälgima kui jäik või kaootiline on tööprotsess&lt;br /&gt;
* töökohta valides pole töökorralduspoolse siseinfo hankimine mitte ainult eetiline, vaid ka mõistlik&lt;br /&gt;
* kui oma OÜ -- muus raamatupidamises võid olla loominguline, aga käibemaks maksa ära&lt;br /&gt;
* kõikide tööhüvede tagamõte on töötajalt suurema töö välja väänamine&lt;br /&gt;
* töötaja pole ettevõtte eest mitte kuidagi moraalselt vastutav (ei tohi mõelda, et mida nad ilma minuta teevad) keegi pole ettevõttega laulatatud&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* IT ei mõista äri, kuid äripoole arusaam ITst on veel halvem &lt;br /&gt;
* äripool peaks eelkõige mõistma IT võimekust ja piiranguid, vältima soove väljendades umbmäärast keelt&lt;br /&gt;
* IT tüüpiline probleem -- keskendutakse liiga palju tehnilisele väljakutsele ja väikeste murede depriotiseerimine võib tuua suured ärilised kaotused (klient lahkub)&lt;br /&gt;
* IT peaks tundma äriprotsesse ja terminoloogiat, et selliseid vigu vältida&lt;br /&gt;
* välismaal töötades tuleks vaadata mitte vaid palganumbrit, vaid reaalset elatustaset mida selle palga eest saab lubada&lt;br /&gt;
* eestlased liiguvad palju -- kindlasti leiad kellegi, kes on kus iganes töötanud&lt;br /&gt;
* FB grupid “Eestlased Hispaanias” “Eestlased Austraalias” jne&lt;br /&gt;
* USAst väga tagasi ei tulda, teistest kohtadest tullakse (mõnikord kiirelt) tagasi&lt;br /&gt;
&lt;br /&gt;
===Andmed ei allu analüüsile. Ivar Laur, EMTA analüütikaosakonna juhataja&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/24de2b84-9c8c-497f-a299-7ece598d0802 Andmed ei allu analüüsile. Ivar Laur, 28.09 loengusalvestus]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
* analüütiku arvuti peabki olema absurdselt võimas&lt;br /&gt;
* statistikajutt on tihtipeale üldine seadusandluse tõttu (ei tohi avaldada tänu kellele muutused toimusid)&lt;br /&gt;
* ettevõtted teevad alla veerandi kulutustest oma tegevusala sees&lt;br /&gt;
&lt;br /&gt;
===Eesti Vabariigi küberkaitse. Jaan Priisalu&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/19c7be1d-f277-40ea-8fb7-a5a829162d76 Eesti Vabariigi küberkaitse. Jaan Priisalu, 05.10 loengusalvestus]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
* ID-kaardi kiip in põhimõtteliselt lihtne ja ilma toiteta arvuti (protsessor+mälu)&lt;br /&gt;
* secret service eesmärk on kaitsta esiteks dollarit ja teiseks presidenti&lt;br /&gt;
* küberkuritegevuse kaubanduskeel on vene keel&lt;br /&gt;
* küber on konflikti eesliin (ja seega tihtipeale ründetegevuse indikaator)&lt;br /&gt;
* ainuke vangla mis inimesi parandab on Jaapanis&lt;br /&gt;
* küberrünnak ei ründa mitte arvuteid vaid läbi nende ühiskonda&lt;br /&gt;
* Sun Tsu kehtib ka küberkaitse kontekstis&lt;br /&gt;
* lahinguväli = keerukus; krüpto paneb asja nina alla, kuid peidab keerukuse taha&lt;br /&gt;
* isesesiva riigi pidamise piir on 600,000 inimest&lt;br /&gt;
* Küberkaitseliit&lt;br /&gt;
* kui sa ei oska seletada mida sa küberis teed, seletab seda sinu vastane&lt;br /&gt;
* kõige efektiivsem rünnak on rünnak sõltuvuse pihta&lt;br /&gt;
* antiviirus ei kaitse viiruste vastu, vaid viiruste kordumise vastu&lt;br /&gt;
* portaalideülene andmete konsolideerimine käib üle mobiilinumbrite (2-astmeline tuvastus)&lt;br /&gt;
* terviklus odavneb ja konfidentsiaalsus läheb kallimaks&lt;br /&gt;
* ergo valetamine järjest kallineb&lt;br /&gt;
* skype on maailma parim krüptotarkvara -- seal on krüpto, aga see on kasutajatele nähtamatu&lt;br /&gt;
* guardtime’il on google potentsiaal (ehkki terviklikkuse, mitte käideldavuse aspektis)&lt;br /&gt;
* malwarebytes ja symantec on ideeliselt eesti tooted&lt;br /&gt;
&lt;br /&gt;
===IT ja turundus. Hedi Mardisoo, Starman AS&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/f35aeffc-bcd1-44f3-972b-931cfcb47127 IT ja turundus. Hedi Mardisoo, 12.10 loengusalvestus]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
* bränd on see mida inimesed sinu kohta räägivad või mõtlevad kui oled ruumist lahkunud &lt;br /&gt;
* kõige olulisem on mõtestatus -- miks sa seda asja teed? miks sa hommikul tööle tuled?&lt;br /&gt;
* miks &amp;gt; kuidas &amp;gt; mis&lt;br /&gt;
* brändimine -- kõikide firma aspektide läbimõtlemine väärtustest tulenevalt&lt;br /&gt;
* kui tehnik haiseb, siis ei aita isegi Tanel Padariga reklaamposter&lt;br /&gt;
* tänapäeva sihtgrupistamine käib käitumise järgi (välised faktorid (auto jms) on mõttetud)&lt;br /&gt;
* turundus = ppppp (product, price, promotion, place, people)&lt;br /&gt;
* bränd != turundus != PR&lt;br /&gt;
* growthhacking ja kiss metrics = tuntuse kavandamise tehnikad &lt;br /&gt;
* klient kirjeldab sulle seda, mida ta tahab, mitte seda, mida tal vaja on&lt;br /&gt;
* masu ajal oli Swedpangal 12 päeva pankrotini kuni Rootsi riik vahele astus&lt;br /&gt;
* mida suurem ettevõte seda rohkem see valetab (PR)&lt;br /&gt;
* TELCO paketid on suunatud inimeste harjumuste muutmisele&lt;br /&gt;
* poiss all paremas nurgas mängis läpparis pool loengut mingeid mänge&lt;br /&gt;
&lt;br /&gt;
==Õpingukorralduse küsimused==&lt;br /&gt;
===Küsimus B=== &lt;br /&gt;
Kukkusid arvestusel läbi. Kaua on võimalik arvestust järele teha? Kellega kokku leppida, et kordussooritust teha? Kuidas toimub kordussooritusele registreerimine? Mis on tähtajad? Kui palju maksab, kui oled riigi finantseeritaval (RF) õppekohalkohal? Kui palju maksab, kui oled tasulisel (OF) õppekohal?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vastus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Arvestust on võimalik uuesti teha ülejärgmise semestri punase joone päevani&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#Eksamite%20ja%20arvestuste%20korraldus IT Kolledž: Õppekorralduse eeskiri 5.2]&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Help:URL#Fixing_links_with_unsupported_characters Wikipedia Help:URL Fixing links with unsupported characters]&amp;lt;/ref&amp;gt;. Erinevalt põhjendatud mitteilmumisest ei täpsusta õppekorralduseeskiri kellega peab läbikukkumise korral kordussoorituse asus suhtlema, niisiis mina pöörduks sellises olukorras juhiste saamiseks õppeosakonna poole. Kordussooritusele tuleb registreeruda ÕISis vähemalt kaks tööpäeva enne sooritust. RF õpilasele on kordussooritus tasuta, OF õpilasele 20€&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/kkk/#Millal_korraldatakse_kordussooritusi_ja_kui_kaua_kehtib_oigus_kordussooritusele IT Kolledž: Tudengite KKK #8-10]&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
===Küsimus 4===&lt;br /&gt;
Sul on olemas varasem töökogemus, mida sa tahad kasutada õppeainete arvestamisel (VÕTA). Millised on tegevused? Millised on tähtajad? Kas VÕTA kaudu saadud EAPd arvestatakse semestri õppekava täitmisesse ja aasta õppekoormusesse?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vastus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
VÕTA kasutamiseks tuleb esitada ÕISis taotlus koos vajalike lisadega (kogemust tõendavad dokumendid). VÕTA taotluse menetlustasu on 13 €, millele lisandub ainepunktitasu 5 € 1 EAP kohta&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/kkk/#Mis%20ja%20millal%20tuleb%20esitada%20varasemate%20%C3%B5ppetulemuste/t%C3%B6%C3%B6kogemuse%20arvestamiseks? IT Kolledž: Tudengite KKK #6]&amp;lt;/ref&amp;gt;. Mõistlik oleks minna õppekonsultandi nõu küsima. Taotlejal on õigus rääkida ka õppejõu, õppekavajuhi ja VÕTA komisjoni liikmetega. VÕTA komisjon võib samuti õppejõu poole pöörduda ja konsulteerida ka vastava ala ekspertidega. Taotluse esitamise tähtajaks on hiljemalt 10. tööpäev enne punase joone päeva ning otsuse saab kätte ühe kuu jooksul alates taotluse esitamise tähtajast. Komisjon võib küsida taotlejalt täiendavaid dokumente ja taotluse läbivaatamise aega kuni kuu aja võrra pikendada.&amp;lt;ref&amp;gt;[http://www.itcollege.ee/sisseastujale/vota/vota-kord/ IT Kolledž: VÕTA kord]&amp;lt;/ref&amp;gt; Kui alustasid õppimist 2013/2014 õa. või hiljem, siis VÕTA EAPsid ei arvestada semestri õppekava täitmisesse, kuid aasta õppekoormuse hulka lähevad nad küll.&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/kkk/#Mis%20ja%20millal%20tuleb%20esitada%20varasemate%20%C3%B5ppetulemuste/t%C3%B6%C3%B6kogemuse%20arvestamiseks? IT Kolledž: Tudengite KKK #6]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ülesanne===&lt;br /&gt;
Kui mitme EAP ulatuses tuleb õppekulud osaliselt hüvitada aasta lõpuks, kui esimese semestri lõpuks on olemas 23 EAPd ja teise semestri lõpuks 26 EAPd? Kui suur on teile esitatav arve?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vastus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kohustuslik EAPde hulk on semestris 27, kusjuures aasta lõpus kontrollitakse kas oled kevadsemestril sügissemestri EAP võla tasa teinud. Sügissemestril jäi puudu 4 EAPd, kevadsemestril 1 EAP. Et kevasemestril ei õnnestunud sügissemestri võlga tasa teha, pean aasta lõpus sügissemestri võla eest ka teist korda maksma. Kuna piisavalt kiiresti last teha tõenäoliselt ei õnnestu, siis pean õppeaasta lõpuks maksma (4+1+4) 9 EAP eest, ehk 450€.&amp;lt;ref&amp;gt;Käisin kolmes erinevas kaugõppe tuutoritunnis ja pärast rääkisin veel Marju Mooriga ka&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Viited=&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=User:Hpaves&amp;diff=110672</id>
		<title>User:Hpaves</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=User:Hpaves&amp;diff=110672"/>
		<updated>2016-10-19T14:34:14Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Erialatutvustus 2016 kaugõpe]]&lt;br /&gt;
=Erialatutvustuse aine arvestustöö=&lt;br /&gt;
Autor: Henri Paves&amp;lt;ref&amp;gt;[https://wiki.itcollege.ee/index.php/User:Kkarmo Erialatutvustuse aine arvestustöö näidis]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esitamise kuupäev: 19. oktoober 2016&lt;br /&gt;
&lt;br /&gt;
==Essee (ehk mida sain teada)==&lt;br /&gt;
===Pidulik avaloeng===&lt;br /&gt;
* kõik itcollege.ee postkasti saadetud kirjad loetakse kätte saanuks&lt;br /&gt;
* õppemaksu võib maksta ka asutus&lt;br /&gt;
* IT kolledž kasutab TTÜ raamatukogu&lt;br /&gt;
&lt;br /&gt;
===Vähempidulik avaloeng&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/030fe955-3bb8-443a-b416-72538f5e408e Õpingukorraldus ja erialatutvustus. Kristjan Karmo, 08.10 loengusalvestus]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
* lõputöö kaitsmine salvestatakse&lt;br /&gt;
* ära tee õppekavast spagetti! &lt;br /&gt;
* ÕPI PROGRAMMEERIMA!!! Automatiseeri oma töö&lt;br /&gt;
* intovert saab ennast edevaks sundida!&lt;br /&gt;
&lt;br /&gt;
===Sinna ja tagasi. Arhitekti lugu. Andres Kütt&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/d9ec2ab9-14d4-4e0a-9c5c-c26e5093060f Sinna ja tagasi. Arhitekti lugu. Andres Kütt, 31.08 loengusalvestus]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
* nõukogude aja kaks alternatiivset elustiili: arvutisse või punkariks (muid variante pole)&lt;br /&gt;
* hoia akadeemilise bürokraatia osas silm lahti&lt;br /&gt;
* kinnitas arusaama, et koolil ja koolil on vahe. Mine edasi nii ägedasse kooli kui vähegi saad!&lt;br /&gt;
* aine silt ja sealt saadav sisu ei lähe ülikoolis enamasti kokku&lt;br /&gt;
&lt;br /&gt;
===Testimine ja startupid. Kristel &amp;amp; Marko Kruustük (Testlio)&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/bdb1f592-2bdc-4f3e-96e5-68a65306cbe6 Testimine ja startupid. Kristel &amp;amp; Marko Kruustük, 07.09 loengusalvestus]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
* #estonianmafia&lt;br /&gt;
* kui õpid ja töötad välismaal siis hakkas tõesti eesti keelt ära unustama&lt;br /&gt;
* kõik töötas, kuid kuna raamatupidaja väga midagi ei küsinud, siis ei olnud järelikult hea raamatupidaja&lt;br /&gt;
* ilma tohutu eeltööta läbimurdeid pole ideeliselt olemas&lt;br /&gt;
* hackathonil osalemisest hea ülevaade, sh kui palju reisimist seoses startupiga on&lt;br /&gt;
&lt;br /&gt;
===Süsadminnimisest. Lembitu Ling aka Snakeman&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/edf31936-fa06-4f1a-8c1f-18e4edb07f76 Süsadminnimisest. Lembitu Ling, 14.09 loengusalvestus]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
* arvutimaailmas oli veel 20 aastat tagasi periood kus tasus juppe parandada&lt;br /&gt;
* ära pelga MAN käsu lugemise peale aega kulutada&lt;br /&gt;
* üle kolme korra ei tehta asja käsitsi (skripti ära)&lt;br /&gt;
* ei tohi lasta endale pähe istuda -- kui teenus 24/7 siis minimaalselt kolm adminni, parem kui 4-5&lt;br /&gt;
* kui sul on keskhaldustarkvara, siis kasuta seda (ja võimalikult varajases faasis)&lt;br /&gt;
* hea süsadmin on laisk süsadmin&lt;br /&gt;
* ärge tehke endale tööalaseid sohilapsi (tasuta tehtud töö tekitab omakorda tasuta tööd)&lt;br /&gt;
* hea süsadmin on süsteemiarhitekti parem käsi ja informeerib teda keskkonna võimekusest ja teab muudatuste tagajärgi; oskab kirjeldada mittefunktsionaalseid nõudeid&lt;br /&gt;
* mittefunktsionaalne nõue -- ideeliselt logimine; süsadmin peab teadma milliseid vaja on&lt;br /&gt;
* süsadmin peab olema halb inimene&lt;br /&gt;
&lt;br /&gt;
===IT tööturg. Andres Septer | Karjäärikäänakud. Einar Koltšanov (SCRUM master)&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/c9233ad5-0977-4ea7-9065-3d46012832cc IT tööturg. Andres Septer | Karjäärikäänakud. Einar Koltšanov 21.09 loengusalvestus]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
* suhted luuakse ülikoolis, CV.ee on jäätmehunnik (esineme kool kus sellest ausalt räägitakse)&lt;br /&gt;
* tutvusringkonnast peaksid saama nädala ajaga posu tööpakkumisi -- siis oled õigesti teinud&lt;br /&gt;
* Eestis on sunnitud mobiilsus -- palga- ja ametikõrgenduse saamiseks tuleb töökohta vahetada&lt;br /&gt;
* Eestis käib palgatõusu küsimine lahkumisavalduse kaudu (ja iga kolme aasta tagant uuesti)&lt;br /&gt;
* eelmised kaks on Eesti-spetsiifilised probleemid&lt;br /&gt;
* 200-300 töötajaga firma on normaalne töökoht, väikefirma on kahtlane&lt;br /&gt;
* oled ÜKSI ja reaalset puhkust ei saa , kuna raha pole ostetakse rämpsu kokku ja peab ka uuendades vanu süsteeme edasi toetama (vältida eriti kui oled admin)&lt;br /&gt;
* väikefirmas võib tekkida eeldus, et kui asi elektriga töötab, siis on see IT (nii tõsi!)&lt;br /&gt;
* töökohta valides peab jälgima kui jäik või kaootiline on tööprotsess&lt;br /&gt;
* töökohta valides pole töökorralduspoolse siseinfo hankimine mitte ainult eetiline, vaid ka mõistlik&lt;br /&gt;
* kui oma OÜ -- muus raamatupidamises võid olla loominguline, aga käibemaks maksa ära&lt;br /&gt;
* kõikide tööhüvede tagamõte on töötajalt suurema töö välja väänamine&lt;br /&gt;
* töötaja pole ettevõtte eest mitte kuidagi moraalselt vastutav (ei tohi mõelda, et mida nad ilma minuta teevad) keegi pole ettevõttega laulatatud&lt;br /&gt;
&lt;br /&gt;
* IT ei mõista äri, kuid äripoole arusaam ITst on veel halvem &lt;br /&gt;
* äripool peaks eelkõige mõistma IT võimekust ja piirangud, vältima soove väljendades umbmäärast keelt&lt;br /&gt;
* IT tüüpiline probleem -- keskendutakse liiga palju tehnilisele väljakutsele ja väikeste murede depriotiseerimine võib tuua suured ärilised kaotused (klient lahkub)&lt;br /&gt;
* IT peaks tundma äriprotsesse ja terminoloogiat, et selliseid vigu vältida&lt;br /&gt;
* välismaal töötades tuleks vaadata mitte vaid palganumbrit, vaid reaalset elatustaset mida selle palga eest saab lubada&lt;br /&gt;
* eestlased liiguvad palju -- kindlasti leiad kellegi, kes on kus iganes töötanud&lt;br /&gt;
* FB grupid “Eestlased Hispaanias” “Eestlased Austraalias” jne&lt;br /&gt;
* USAst väga tagasi ei tulda, teistest kohtades tullakse (mõnikord kiirelt) tagasi&lt;br /&gt;
&lt;br /&gt;
===Andmed ei allu analüüsile. Ivar Laur, EMTA analüütikaosakonna juhataja&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/24de2b84-9c8c-497f-a299-7ece598d0802 Andmed ei allu analüüsile. Ivar Laur, 28.09 loengusalvestus]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
* analüütiku arvuti peabki olema absurdselt võimas&lt;br /&gt;
* statistikajutt on tihtipeale üldine seadusandluse tõttu (ei tohi avaldada tänu kellele muutused toimusid)&lt;br /&gt;
* ettevõtted teevad alla veerandi kulutustest oma tegevusala sees&lt;br /&gt;
&lt;br /&gt;
===Eesti Vabariigi küberkaitse. Jaan Priisalu&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/19c7be1d-f277-40ea-8fb7-a5a829162d76 Eesti Vabariigi küberkaitse. Jaan Priisalu, 05.10 loengusalvestus]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
* ID-kaardi kiip in põhimõtteliselt lihtne arvuti (protsessor+mälu), kuid sellel pole toidet&lt;br /&gt;
* secret service eesmärk on kaitsta esiteks dollarit ja teiseks presidenti&lt;br /&gt;
* küberkuritegevuse kaubanduskeel on vene keel&lt;br /&gt;
* küber on konflikti eesliin (ja seega tihtipeale ründetegevuse indikaator)&lt;br /&gt;
* ainuke vangla mis inimesi parandab on Jaapanis&lt;br /&gt;
* küberrünnak ei ründa mitte arvuteid vaid läbi nende ühiskonda&lt;br /&gt;
* Sun Tsu kehtib ka küberkaitse kontekstis&lt;br /&gt;
* lahinguväli = keerukus; krüpto paneb asja nina alla, kuid peidab keerukuse taha&lt;br /&gt;
* isesesiva riigi pidamise piir on 600,000 inimest&lt;br /&gt;
* Küberkaitseliit&lt;br /&gt;
* kui sa ei oska seletada mida sa küberis teed, seletab seda sinu vastane&lt;br /&gt;
* kõige efektiivsem rünnak on rünnak sõltuvuse pihta&lt;br /&gt;
* antiviirus ei kaitse viiruste vastu, vaid viiruste kordumise vastu&lt;br /&gt;
* portaalideülene andmete konsolideerimine käib üle mobiilinumbrite (2-astmeline tuvastus)&lt;br /&gt;
* terviklus odavneb ja konfidentsiaalsus läheb kallimaks&lt;br /&gt;
* ergo valetamine järjest kallineb&lt;br /&gt;
* skype on maailma parim krüptotarkvara -- seal on krüpto, aga see on kasutajatele nähtamatu&lt;br /&gt;
* guardtime’il on google potentsiaal (ehkki terviklikkuse, mitte käideldavuse aspektis)&lt;br /&gt;
* malwarebytes ja symantec on ideeliselt eesti tooted&lt;br /&gt;
&lt;br /&gt;
===IT ja turundus. Hedi Mardisoo, Starman AS&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/f35aeffc-bcd1-44f3-972b-931cfcb47127 IT ja turundus. Hedi Mardisoo, 12.10 loengusalvestus]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
* bränd on see mida inimesed sinu kohta räägivad või mõtlevad kui oled ruumist lahkunud &lt;br /&gt;
* kõige olulisem on mõtestatus -- miks sa seda asja teed? miks sa hommikul tööle tuled?&lt;br /&gt;
* miks &amp;gt; kuidas &amp;gt; mis&lt;br /&gt;
* brändimine -- kõikide firma aspektide läbimõtlemine väärtustest tulenevalt&lt;br /&gt;
* kui tehnik haiseb, siis ei aita isegi Tanel Padariga reklaamposter&lt;br /&gt;
* tänapäeva sihtgrupistamine käib käitumise järgi (välised faktorid (auto jms) on mõttetud)&lt;br /&gt;
* turundus = ppppp (product, price, promotion, place, people)&lt;br /&gt;
* bränd != turundus != PR&lt;br /&gt;
* PR viis küsimust &lt;br /&gt;
* growthhacking ja kiss metrics = tuntuse kavandamise tehnikad &lt;br /&gt;
* klient kirjeldab sulle seda, mida ta tahab, mitte seda, mida tal vaja on&lt;br /&gt;
* masu ajal oli Swedpangal 12 päeva pankrotini kuni Rootsi riik vahele astus&lt;br /&gt;
* mida suurem ettevõte seda rohkem see valetab (PR)&lt;br /&gt;
* TELCO paketid on suunatud inimeste harjumuste muutmisele&lt;br /&gt;
* poiss all paremas nurgas mängis läpparis pool loengut mingeid mänge&lt;br /&gt;
&lt;br /&gt;
==Õpingukorralduse küsimused==&lt;br /&gt;
===Küsimus B=== &lt;br /&gt;
Kukkusid arvestusel läbi. Kaua on võimalik arvestust järele teha? Kellega kokku leppida, et kordussooritust teha? Kuidas toimub kordussooritusele registreerimine? Mis on tähtajad? Kui palju maksab, kui oled riigi finantseeritaval (RF) õppekohalkohal? Kui palju maksab, kui oled tasulisel (OF) õppekohal?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vastus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Arvestust on võimalik uuesti teha ülejärgmise semestri punase joone päevani&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#Eksamite%20ja%20arvestuste%20korraldus IT Kolledž: Õppekorralduse eeskiri 5.2]&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Help:URL#Fixing_links_with_unsupported_characters Wikipedia Help:URL Fixing links with unsupported characters]&amp;lt;/ref&amp;gt;. Erinevalt põhjendatud mitteilmumisest ei täpsusta õppekorralduseeskiri kellega peab läbikukkumise korral kordussoorituse asus suhtlema, niisiis mina pöörduks sellises olukorras juhiste saamiseks õppeosakonna poole. Kordussooritusele tuleb registreeruda ÕISis vähemalt kaks tööpäeva enne sooritust. RF õpilasele on kordussooritus tasuta, OF õpilasele 20€&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/kkk/#Millal_korraldatakse_kordussooritusi_ja_kui_kaua_kehtib_oigus_kordussooritusele IT Kolledž: Tudengite KKK #8-10]&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
===Küsimus 4===&lt;br /&gt;
Sul on olemas varasem töökogemus, mida sa tahad kasutada õppeainete arvestamisel (VÕTA). Millised on tegevused? Millised on tähtajad? Kas VÕTA kaudu saadud EAPd arvestatakse semestri õppekava täitmisesse ja aasta õppekoormusesse?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vastus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
VÕTA kasutamiseks tuleb esitada ÕISis taotlus koos vajalike lisadega (kogemust tõendavad dokumendid). VÕTA taotluse menetlustasu on 13 €, millele lisandub ainepunktitasu 5 € 1 EAP kohta&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/kkk/#Mis%20ja%20millal%20tuleb%20esitada%20varasemate%20%C3%B5ppetulemuste/t%C3%B6%C3%B6kogemuse%20arvestamiseks? IT Kolledž: Tudengite KKK #6]&amp;lt;/ref&amp;gt;. Mõistlik oleks minna õppekonsultandi nõu küsima. Taotlejal on õigus rääkida ka õppejõu, õppekavajuhi ja VÕTA komisjoni liikmetega. VÕTA komisjon võib samuti õppejõu poole pöörduda ja konsulteerida ka vastava ala ekspertidega. Taotluse esitamise tähtajaks on hiljemalt 10. tööpäev enne punase joone päeva ning otsuse saab kätte ühe kuu jooksul alates taotluse esitamise tähtajast. Komisjon võib küsida taotlejalt täiendavaid dokumente ja taotluse läbivaatamise aega kuni kuu aja võrra pikendada.&amp;lt;ref&amp;gt;[http://www.itcollege.ee/sisseastujale/vota/vota-kord/ IT Kolledž: VÕTA kord]&amp;lt;/ref&amp;gt; Kui alustasid õppimist 2013/2014 õa. või hiljem, siis VÕTA EAPsid ei arvestada semestri õppekava täitmisesse, kuid aasta õppekoormuse hulka lähevad nad küll.&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/kkk/#Mis%20ja%20millal%20tuleb%20esitada%20varasemate%20%C3%B5ppetulemuste/t%C3%B6%C3%B6kogemuse%20arvestamiseks? IT Kolledž: Tudengite KKK #6]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ülesanne===&lt;br /&gt;
Kui mitme EAP ulatuses tuleb õppekulud osaliselt hüvitada aasta lõpuks, kui esimese semestri lõpuks on olemas 23 EAPd ja teise semestri lõpuks 26 EAPd? Kui suur on teile esitatav arve?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vastus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kohustuslik EAPde hulk on semestris 27, kusjuures aasta lõpus kontrollitakse kas oled kevadsemestril sügissemestri EAP võla tasa teinud. Sügissemestril jäi puudu 4 EAPd, kevadsemestril 1 EAP. Et kevasemestril ei õnnestunud sügissemestri võlga tasa teha, pean aasta lõpus sügissemestri võla eest ka teist korda maksma. Kuna piisavalt kiiresti last teha tõenäoliselt ei õnnestu, siis pean õppeaasta lõpuks maksma (4+1+4) 9 EAP eest, ehk 450€.&amp;lt;ref&amp;gt;Käisin kolmes erinevas kaugõppe tuutoritunnis ja pärast rääkisin veel Marju Mooriga ka&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Viited=&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=User:Hpaves&amp;diff=108659</id>
		<title>User:Hpaves</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=User:Hpaves&amp;diff=108659"/>
		<updated>2016-10-17T07:08:27Z</updated>

		<summary type="html">&lt;p&gt;Hpaves: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Erialatutvustus 2016 kaugõpe]]&lt;br /&gt;
=Erialatutvustuse aine arvestustöö=&lt;br /&gt;
Autor: Henri Paves&amp;lt;ref&amp;gt;[https://wiki.itcollege.ee/index.php/User:Kkarmo Erialatutvustuse aine arvestustöö näidis]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esitamise kuupäev: 19. oktoober 2016&lt;br /&gt;
&lt;br /&gt;
==Essee (ehk mida sain teada)==&lt;br /&gt;
===Pidulik avaloeng===&lt;br /&gt;
* Kõik itcollege.ee postkasti saadetud kirjad loetakse kätte saanuks&lt;br /&gt;
* Õppemaksu võib maksta ka asutus&lt;br /&gt;
* IT kolledž kasutab TTÜ raamatukogu&lt;br /&gt;
&lt;br /&gt;
===Vähempidulik avaloeng&amp;lt;ref&amp;gt;[https://echo360.e-ope.ee/ess/echo/presentation/030fe955-3bb8-443a-b416-72538f5e408e Õpingukorraldus ja erialatutvustus. Kristjan Karmo, 08.10 loengusalvestus]&amp;lt;/ref&amp;gt;===&lt;br /&gt;
* Lõputöö kaitsmine salvestatakse&lt;br /&gt;
* Ära tee õppekavast spagetti! &lt;br /&gt;
* ÕPI PROGRAMMEERIMA!!! Automatiseeri oma töö&lt;br /&gt;
* Intovert saab ennast edevaks sundida!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Õpingukorralduse küsimused==&lt;br /&gt;
===Küsimus B=== &lt;br /&gt;
Kukkusid arvestusel läbi. Kaua on võimalik arvestust järele teha? Kellega kokku leppida, et kordussooritust teha? Kuidas toimub kordussooritusele registreerimine? Mis on tähtajad? Kui palju maksab, kui oled riigi finantseeritaval (RF) õppekohalkohal? Kui palju maksab, kui oled tasulisel (OF) õppekohal?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vastus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Arvestust on võimalik uuesti teha ülejärgmise semestri punase joone päevani&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/eeskirjad-ja-juhendid/oppekorraldus-eeskiri/#Eksamite%20ja%20arvestuste%20korraldus IT Kolledž: Õppekorralduse eeskiri 5.2]&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[https://en.wikipedia.org/wiki/Help:URL#Fixing_links_with_unsupported_characters Wikipedia Help:URL Fixing links with unsupported characters]&amp;lt;/ref&amp;gt;. Erinevalt põhjendatud mitteilmumisest ei täpsusta õppekorralduseeskiri kellega peab läbikukkumise korral kordussoorituse asus suhtlema, niisiis mina pöörduks sellises olukorras juhiste saamiseks õppeosakonna poole. Kordussooritusele tuleb registreeruda ÕISis vähemalt kaks tööpäeva enne sooritust. RF õpilasele on kordussooritus tasuta, OF õpilasele 20€&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/kkk/#Millal_korraldatakse_kordussooritusi_ja_kui_kaua_kehtib_oigus_kordussooritusele IT Kolledž: Tudengite KKK #8-10]&amp;lt;/ref&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
===Küsimus 4===&lt;br /&gt;
Sul on olemas varasem töökogemus, mida sa tahad kasutada õppeainete arvestamisel (VÕTA). Millised on tegevused? Millised on tähtajad? Kas VÕTA kaudu saadud EAPd arvestatakse semestri õppekava täitmisesse ja aasta õppekoormusesse?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vastus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
VÕTA kasutamiseks tuleb esitada ÕISis taotlus koos vajalike lisadega (kogemust tõendavad dokumendid). VÕTA taotluse menetlustasu on 13 €, millele lisandub ainepunktitasu 5 € 1 EAP kohta&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/kkk/#Mis%20ja%20millal%20tuleb%20esitada%20varasemate%20%C3%B5ppetulemuste/t%C3%B6%C3%B6kogemuse%20arvestamiseks? IT Kolledž: Tudengite KKK #6]&amp;lt;/ref&amp;gt;. Mõistlik oleks minna õppekonsultandi nõu küsima. Taotlejal on õigus rääkida ka õppejõu, õppekavajuhi ja VÕTA komisjoni liikmetega. VÕTA komisjon võib samuti õppejõu poole pöörduda ja konsulteerida ka vastava ala ekspertidega. Taotluse esitamise tähtajaks on hiljemalt 10. tööpäev enne punase joone päeva ning otsuse saab kätte ühe kuu jooksul alates taotluse esitamise tähtajast. Komisjon võib küsida taotlejalt täiendavaid dokumente ja taotluse läbivaatamise aega kuni kuu aja võrra pikendada.&amp;lt;ref&amp;gt;[http://www.itcollege.ee/sisseastujale/vota/vota-kord/ IT Kolledž: VÕTA kord]&amp;lt;/ref&amp;gt; Kui alustasid õppimist 2013/2014 õa. või hiljem, siis VÕTA EAPsid ei arvestada semestri õppekava täitmisesse, kuid aasta õppekoormuse hulka lähevad nad küll.&amp;lt;ref&amp;gt;[http://www.itcollege.ee/tudengile/kkk/#Mis%20ja%20millal%20tuleb%20esitada%20varasemate%20%C3%B5ppetulemuste/t%C3%B6%C3%B6kogemuse%20arvestamiseks? IT Kolledž: Tudengite KKK #6]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ülesanne===&lt;br /&gt;
Kui mitme EAP ulatuses tuleb õppekulud osaliselt hüvitada aasta lõpuks, kui esimese semestri lõpuks on olemas 23 EAPd ja teise semestri lõpuks 26 EAPd? Kui suur on teile esitatav arve?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vastus&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kohustuslik EAPde hulk on semestris 27, kusjuures aasta lõpus kontrollitakse kas oled kevadsemestril sügissemestri EAP võla tasa teinud. Sügissemestril jäi puudu 4 EAPd, kevadsemestril 1 EAP. Et kevasemestril ei õnnestunud sügissemestri võlga tasa teha, pean aasta lõpus sügissemestri võla eest ka teist korda maksma. Kuna kiirelt last teha tõenäoliselt ei õnnestu, siis pean õppeaasta lõpuks maksma (4+1+4) 9 EAP eest, ehk 450€.&amp;lt;ref&amp;gt;Käisin kolmes erinevas kaugõppe tuutoritunnis ja pärast rääkisin veel Marju Mooriga ka&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Viited=&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hpaves</name></author>
	</entry>
</feed>