-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtls.tab
97 lines (89 loc) · 5.57 KB
/
tls.tab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#( Restart_token_gate_process
\ NoActive
\ AsLoggedUser \ Включите эту опцию, если в 0 сессию при старте залогинен пользователь.
\ Общее правило такое -- процесс нужно запускать от имени пользователя
\ в нулевой сессии. Если в нулевой сессии меняется пользователь,
\ процесс теряет связь со смарт-картой и его надо опять запускать
Time: START-TIME \ запуск при старте системы
Rule: FILE-EXIST: "d:\Sslgate.url" \ проверяем, что ключ вставлен и его блочное устройство определилось
Action:
KILL: "start.exe" \ убиваем старый start
TRAY-REFRESH \ убираем фантомные иконки из трея
StartIn: "c:\image\" \ запускать гейт мы будем отсюда (сюда нужно скопировать файлы с флэш-диска), ибо
\ в заголовке гейта установлен флаг, который заставляет ОС копировать exe
\ в своп и запускать из свопа, если exe лежит на съемном диске.
\ На виртуальных машинах своп обычно отключен, и что тогда происходит я не знаю,
\ по-этому придётся вручную поработать операционной системой
\ и запустить образ с фиксированного диска, как и хотели разработчики.
\ Если на вашей системе своп не отключен, то ничего копировать не надо,
\ запускайте прямо с флэшки, в моём случае было бы StartIn: "d:\"
\ Но там ещё лежат ресурсы отдельным файлом, так что лучше все равно скопировать,
\ поскольку флэшка эта очень медленная
IdlePriority ShowNoActivate \ параметры запуска гейта (чтобы при 100% CPU не вешал систему)
\ со свежей прошивкой 15 года параметр IdlePriority, возможно, не нужен
START-APP: start.exe
PAUSE 2000
BEGIN
PROC-EXIST: "iexplore.exe"
WHILE
KILL: "iexplore.exe"
PAUSE: 200
REPEAT
)#
#( Restart_sharing_service
\ NoActive
Time: START-TIME \ запуск при старте системы
Action:
PROC-EXIST: "nginx.exe" \ просим nginx выйти по-хорошему
IF
StartIn: "%PROGRAMFILES%\nginx\"
START-APP: nginx.exe -s stop
\ уничтожаем рам-диск по пути
START-APPW: imdisk -D -m B:
PAUSE: 1000
BEGIN \ начинаем добивать nginx, если он не выйдет за 1 сек
PROC-EXIST: "nginx.exe"
WHILE
KILL: "nginx.exe"
PAUSE: 200
REPEAT
THEN
FILE-EXIST: "d:\Sslgate.url" \ проверяем, что файл с ключом от вэб-интерфейса существует
IF \ Выделяем новый чистый рам-диск В: и создаем на нем фс fat
START-APPW: imdisk -a -s 65M -m B: -p "/fs:fat /q /y"
PAUSE: 500
DIR-CREATE: "b:\html\bank\" \ здесь будет корень нашего вэб-приложения
RECURSIVE
FOR-FILES: "c:\Program Files\nginx\html\bank\*" \ копируем все файлы-шаблоны в корень
FILE-COPY: "%FOUND-FULLPATH%" "b:\html\bank\%FOUND-RELPATH%"
;FOR-FILES
StartIn: "%PROGRAMFILES%\nginx\" \ начальный файл готов, запускаем nginx
START-APP: nginx.exe
THEN
)#
#( remote_restarter
WatchFile: "%PROGRAMFILES%\nginx\logs\reload.log" \ следим за этим файлом (обратная связь из вэб-приложения)
Action: \ (файл флага на фиксированном диске, поскольку боюсь что nnCron неправильно
FILE-EMPTY: "%PROGRAMFILES%\nginx\logs\reload.log" \ отработает слежение за исчезающим диском)
IF \ если он оказался непустой после операции ввода-вывода с ним,
ELSE \ то выполняем эти команды
Restart_token_gate_process LAUNCH
\ PAUSE: 500
\ Restart_sharing_service LAUNCH
THEN
)#
#( clear_cache
WatchFile: "%PROGRAMFILES%\nginx\logs\ccache.log" \ следим за этим файлом (обратная связь из вэб-приложения)
Action:
FILE-EMPTY: "%PROGRAMFILES%\nginx\logs\ccache.log"
IF \ если он оказался непустой после операции ввода-вывода с ним,
ELSE \ то выполняем эти команды
RECURSIVE FILE-DELETE: "b:\vpn-cache\*"
THEN
)#
#( reload_nginx
WatchFile: "%PROGRAMFILES%\nginx\conf\nginx.conf" \ при изменении этого файла
Action:
StartIn: "%PROGRAMFILES%\nginx\" \ посылаем сигнал процессу nginx перечитать конфиг
START-APP: nginx.exe -s reload
)#