/gateman

Primary LanguagePython

gateman

Установка в системе

sudo cp ./http_watchdog /etc/xinetd.d
sudo stop xinetd; start xinetd

В /etc/xinet.d/http_watchdog прописать путь к скрипту http_watchdog.py и имя запускающего пользователя в соответсвии с конфигурацие системы.

Добавить в crontab запускающего пользователя периодическую задачу для проверки на превышение периода бездействия контролируемого приложения:

crontab -u user -e

Код пункта в crontab:

*/1 * * * * ~/http_watchdog/check_timeout.py

Для оповещения сторожевого таймера необходимо не реже заданного периода (1мин) отправлять любой HTTP запрос по адресу http://localhost:10000

Пример:

<script type='text/javascript' charset='utf-8'>
function test(){
    $.get('http://localhost:10000', function(data){});
}
setInterval(test, 5000);
</script>

Установка в системе для Латекса

sudo cp ./http_latex /etc/xinetd.d
sudo stop xinetd; start xinetd

В /etc/xinet.d/http_latex прописать путь к скрипту http_latex.py и имя запускающего пользователя в соответсвии с конфигурацие системы.

Понадобится доустановить пакеты, которых будет не хавать

sudo apt-get install texlive
sudo apt-get install texlive-lang-cyrillic
sudo apt-get install texlive-latex-extra
sudo apt-get install python-pypdf

команда для компиляции:

  /sudo/bin/pdflatex some_file.tex

Для создания макета использовался Kile из репозитория. Он поставит часть пакетов латекса автоматически.

Пример макета чека (latex_test.tex)

\documentclass[12pt ]{extarticle}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
\usepackage[width=7cm]{geometry}
\usepackage{dashrule}
\usepackage{ulem}
\usepackage[active,tightpage]{preview}
\renewcommand{\PreviewBorder}{0.5cm}
\newcommand{\Newpage}{\end{preview}\begin{preview}}
\renewcommand{\arraystretch}{1.5}
\hyphenpenalty=10000 
\usepackage{sans}
\renewcommand{\bfdefault}{sbc}
\begin{document}
\begin{preview}
\begin{flushleft}
  \textbf{{\huge Взаботе} \\ 
    \vspace{0.5cm}
    {\large Список покупок}} \\
  \vspace{0.5cm}
  \hdashrule{6.5cm}{1pt}{}\\
  \vspace{0.5cm}
  \begin{trivlist} 
  \item
    \textbf{{\large Кактус} \\
      супермаркет}\\
    Свердловсикй проспект $-$, 71 /\\
    Карла Либхнета, 24\\
    \vspace{0.2cm}
    \hdashrule{6.5cm}{1pt}{1pt}\\
    \vspace{0.5cm}
    \begin{tabular}{p{3cm}p{1.2cm}r}
       Мука пшеничная. Первая мыльница  & 2 кг & 410 \sout{Р} \\
       Гречка  & 1 кг & 105 \sout{Р} \\
      Хлеб ржаной  & 1 б & 15.5 \sout{Р} \\
       Итого  &   & 651 \sout{Р} \\
    \end{tabular}\\
    \vspace{0.22cm}
    \hdashrule{6.5cm}{1pt}{1pt}\\
    \vspace{0.5cm}
    \textbf{Cпособы оплаты} \\
    Наличными, картой \\
    \vspace{0.5cm}
    \textbf{Часы работы} \\
    \begin{tabular}{p{3.2cm}p{3.2cm}}
       \textbf{Пн$-$Пт}  & \textbf{Сб$-$Вс} \\
       9:00$-$19:00 & 9:00$-$16:00 \\
    \end{tabular}\\
    \vspace{0.4cm}
    \hdashrule{6.5cm}{1pt}{}\\
    \vspace{0.5cm}
  \item
    \textbf{{\large Молния} \\
      супермаркет}\\
    Свердловсикй проспект, 71 /\\
    Карла Либхнета, 24\\
    \vspace{0.2cm}
    \hdashrule{6.5cm}{1pt}{1pt}\\
    \vspace{0.5cm}
    \begin{tabular}{p{3cm}p{1.2cm}r}
       Мука пшеничная. Первая мыльница  & 2 кг & 410 \sout{Р} \\
       Гречка  & 1 кг & 105 \sout{Р} \\
      Хлеб ржаной  & 1 б & 15.5 \sout{Р} \\
       Итого  &   & 651 \sout{Р} \\
    \end{tabular}\\
    \vspace{0.22cm}
    \hdashrule{6.5cm}{1pt}{1pt}\\
    \vspace{0.5cm}
    \textbf{Cпособы оплаты} \\
    Наличными, картой \\
    \vspace{0.5cm}
    \textbf{Часы работы} \\
    \begin{tabular}{p{3.2cm}p{3.2cm}}
       \textbf{Пн$-$Пт}  & \textbf{Сб$-$Вс} \\
       9:00$-$19:00 & 9:00$-$16:00 \\
    \end{tabular}\\
    \vspace{0.4cm}
    \hdashrule{6.5cm}{1pt}{}\\
    \vspace{0.5cm}
  \end{trivlist}
\end{flushleft}
\end{preview}
\end{document}