\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
\usepackage[left=1.5cm,right=1.5cm,top=2cm,bottom=1.5cm,bindingoffset=0cm]{geometry}
\usepackage{alltt}
\usepackage{amsmath}
\usepackage{booktabs}

\begin{document}
\section{Фоновый режим}

Пример 1. Перевод команды `vi /etc/passwd` в фоновый режим: 
\begin{verbatim}
$ vi /etc/passwd
^Z
[2]+  Stopped                 vi /etc/passwd
$ bg
[2]+ vi /etc/passwd &

[2]+  Stopped                 vi /etc/passwd
\end{verbatim}
Пример 2. Запуск команды `vi /etc/passwd` в фоновом режиме:
\begin{verbatim}
$ vi /etc/passwd &
[2]+ vi /etc/passwd &
\end{verbatim}
\section{Утилиты}
\textbf{ps} -- отображает статус процесса. \\ 
	Выводит информацию об активных процессах. Без ключей выводит список процессов с тем же эффективным UID и tty. \\
	Опции: \\
	-a -- список всех процессов, кроме лидеров сеанса и не ассоциированных с терминалом процессов; \\
	-A -- список всех процессов;   \\
	-t term -- список процессов, ассоциированных с терминалом term. \\	
	-f -- список процессов с \\
	-o options -- отображения свойств процессов, заданного в options; \\ 
	Пример работы: \\
\begin{verbatim}
$ ps -a -o user,ruser,pid,ppid,s,tty,comm
    USER    RUSER   PID  PPID S TTY      COMMAND
 s182775  s182775   751   484 S pts/10  vi
 s191944  s191944 16706 16690 Z ?       <defunct>
 s191678  s191678 15786 14167 S pts/34  man
\end{verbatim}
	Опции:
	user --- эффективный UID;\\ %(!!!)
	ruser --- реальный UID;\\   %(!!!)
	pid --- ID процесса;\\
	ppid --- ID родителя процесса;\\
	s	--- статус процесса: O - процесс запущен, S -  спящий процесс, T - процесс остановлен; Z -- зомби; \\
	tty ---	имя управляющего терминала; \\
	comm --- имя исполняющейся команды. \\
	
\textbf{cron} -- демон, запускающий процессы, которые исполняют команды в заданное время. Настройки регулируются утилитой \textit{crontab}. \\ 
Утилита \textit{crontab} управляет доступом пользователя у \textit{cron} посредством редактирования файла заданий. Файлы таблиц планировщика хранятся в каталоге /var/spool/cron/crontab. \\
\textit{crontab [options]} \\
Формат: [min] [hours] [days] [months] [week] [cmd] \\ 
Ключи:\\
-e -- редактирование crontab файлов;\\
-l -- список пользовательских задач;\\
-r -- удаляет пользовательский crontab.\\
\\
Пример:\\
сrontab -e
* * 6 12 * /home/maar/reminder.sh
\\

\textbf{at} -- утилита, контролирующая одиночный запуск команд определённое время.\\
\textit{at [options] [-f file] {time}}\\
-f file -- читает файл взамен stdin.\\
-c -- используется csh для исполнения задания;\\
-k -- используется ksh для исполнения задания;\\
-s -- используется sh для исполнения задания;\\
-r at-jobs -- удалить at-jobs;\\
time -- now, noon;\\
date -- today, tomorrow;\\
\textbf{atq} -- отображение заданий в очереди. 
\textit{atq [-c] [-n]} \\
-c -- отображение очереди, отсортированной по времени создания.
-n -- отобразить число заданий в очереди.
\begin{verbatim}
$at -k -f script.sh 12:23
commands will be executed using /bin/ksh
job 1447239240.a at Wed Nov 11 13:54:00 2015
$atq
 Rank     Execution Date     Owner      Job            Queue   Job Name
  1st   Nov 11, 2015 12:23   s191944    1447239300.a     a     boo.sh
\end{verbatim}

\textbf{nice} -- запуск на исполнение комманды с заданным приоритетом ([-20 - 19] или [0 - 40]). \\
\textit{nice [-n inc] cmd [args]}\\
Options:\\
-n inc -- число, которое прибавляется к константному значению (20 для Solaris). При задании числа с превышающим максимально допустимым значением результатирующий приоритет ставится максимальным. \\

\begin{verbatim}
$ nice -20 nohup vim &
$ ps -o pid,nice,comm
  PID NI COMMAND
10244 39 vim
10248 20 ps
\end{verbatim} 
Nice Nimber -- относительный приоритет процесса, учитываемый планировщиком при определении очереди. \\

\textbf{nohup} -- запускает команду, игнорирующую SIGHUP.\\
\textit{nohup [[options] | [cmd]] } \\
Options:\\
-p pid -- действует на заданный pid процесса;\\
-g gpid -- действует на заданный gpid группы процессов;\\
 \begin{verbatim}
 $ nohup ./inf.sh &
 [1] 8992
 Sending output to nohup.out
 \end{verbatim}
 nohup.out -- файл, в который перенаправляется вывод команды.\\
 
\textbf{kill} -- отсылка сигнала процессу.\\ 
\textit{kill [options]}\\
Options:
-l -- список сигналов;\\
-s signal [-singal] pid -- отправка определённого сигнала определённому процессу;\\  
\begin{verbatim}
$ nohup ./sig &
$ ps
   PID TTY         TIME CMD
  9225 pts/1       0:00 ps
  9207 pts/1       0:39 sig
  8903 pts/1       0:00 bash
$ kill -HUP 9207
$ ps
   PID TTY         TIME CMD
  9225 pts/1       0:00 ps
  9207 pts/1       0:39 sig
  8903 pts/1       0:00 bash
$ kill -9 9207
$ ps
   PID TTY         TIME CMD
  9273 pts/1       0:00 ps
  8903 pts/1       0:00 bash
[2]+  Killed                  nohup ./sig
$ kill -0 9207
bash: kill: (9207) - No such process
\end{verbatim}

\textbf{fg} -- запуск в foreground.\\
\textit{ fg [jod\_id] } \\
Запуск утилиты без аргументов использует последний job\_id.\\

\textbf{bg} -- запуск в background. \\
\textit{bg [job\_id]}\\

\textbf{jobs} -- отображение текущих задач. \\
\textit{jobs [option] [job\_id]}\\
Option:\\
-l -- расширенный список задач.\\
\begin{verbatim}
$ jobs -l
[1]   8992 Running                 nohup ./inf.sh &  (wd: ~)
[2]   9784 Stopped (user)          vim /etc/passwd
[3]-  9791 Stopped (tty output)    vim /etc/passwd
\end{verbatim}
1 -- выполняется в фоновом режиме.\\
2 -- запущен и переведён в фоновый режим. \\
3 -- запущен в фоновом режиме. \\


\textbf{priocntl} -- вывод / установка прараметров планировщика для указанных процессов.\\
\textit{priocntl -l} \\
\textit{priocntl [option] [-c class [options]] [i type [list]] [cmd] }
Options:\\
-l --- список классов, сконфигугрированных в системе;\\ 
-d --- вывод параметров;
-c class --- задаёт класс, который нужно установить. Типы: RT (real-time), TS (time-sharing), IA (interactive);\\
-i type list --- задаёт список процессов с помощью опций; type -- тип идентификатора (pid, ppid, uid, all); list -- список идентификаторов по свойствам, указанным в type, all не требует списка.\\
-s -- установка параметров планировщика;
-p -- установка значения приоритета;\\
\begin{verbatim}
$ priocntl -d  -i pid 10244 8992 10500
TIME SHARING PROCESSES:
   PID[/LWP]       TSUPRILIM     TSUPRI 
  10244              -3          -3   /*nice -3 nohup vim &*/ 
   8992                0            0    
  10500              -30          -30   /*nice -10 vim &*/
\end{verbatim}
TUSPRLIM -- максиальный пользовательский приоритет. TSUPRI -- пользовательский приоритет. \\

\section{Таблица сигналов}
Сигналы -- \\
\begin{tabular}{|l|l|l|l|}
\hline
Name& Value& Deafult& Event \\ \hline
 HUP&  1&  Завершение & Закрытие терминала.\\ \hline
 INT&  2&  Завершение & Сигнал прерывания с терминала.\\ \hline
 QUIT& 3&  Заврешение + дамп & Сигнал выхода с терминала.  \\ \hline
 ILL&  4&  Завершение + дамп& Недопустимая инструкция.  \\ \hline
 TRAP& 5& Завершение + дамп & Отладочный сигнал. \\ \hline
 ABRT& 6& Завершение + дамп & Сигнал, генерирующийся при вызове функции abort(). \\ \hline
 EMT& 7& Завершение + дамп & Emilation Trap  \\ \hline	
 FPE&  8&  Завершение + дамп& Арифметическая ошибка. \\ \hline
 KILL&  9&  Завершение& Убивает процесс. \\ \hline
 BUS&  10&  Завершение + дамп& Ошибка на шине при обращении к памяти.   \\ \hline
 SEGV&  11& Завершение + дамп& Ошибка работы с памятью.  \\ \hline
 SYS&  12&  Завершение + дамп& Ошибка обращения к syscall. \\ \hline
 PIPE&  13& Завершение & Попытка записи в закрытое соединение.  \\ \hline
ALRM&  14& Завершение & Сигнал процессу по ``будильнику`` -- alarm(). \\ \hline
 TERM&  15&  Завершение& Сигнал на завершение. Может быть проигнорирован.  \\ \hline
 USR1&  16&  Завершение& Пользовательский сигнал  \\ \hline
 USR2&  17&  Завершение& Пользовательский сигнал  \\ \hline
 CHLD&  18&  Игнорирование& Измнение состояния дочернего процесса.  \\ \hline
 STOP&  23&  Остановка& Сигнал принудительной остановки. \\ \hline
 TSTP&  24&  Остановка& Сигнал остановки с терминала.  \\ \hline
 CONT&  25&  Игнорирование& Продолжение остановленного процесса.  \\ \hline
 TTIN&  26& Остановка& Чтение с терминала фоновым процессом.  \\ \hline
 TOU&  27&  Остановка& Запись в терминал.  \\ \hline
\end{tabular}
\\
\\
Сигналы SIGKILL и SIGSTOP не блокируются.

\end{document}