LINUX.ORG.RU

Подвес процессов по удалению ключа.


0

1

Возникла тут такая мысль и ищутся мануалы,документации и истории успеха на эту тему.

Мысль

Допустим у нас есть какое-либо приложение или стек приложений (далее ПО). Также имеется внешний ключ в прямом смысле этого слова (usb брелок с хитрым чипом, а для начала пусть будет хотя бы флэшка).

При подключенном ключе ПО работает в нормальном режиме. Если ключ изъять, процессы ПО остаются в памяти, но не выполняются до тех пор, пока не подключен ключ. И соответственно их неьлзя убить даже из под рута. Желательно если приложение при выключении железа будет свопится на заранее созданный раздел ( хотя это фантастика, т.к. при загрузке дескрипторы файлов будут не совпадать). Один из способов свопа - использовать какие либо виртуалки - но это не желательно, ибо виртуалка в виртуалке это трэш по винтам и процу.

Идеи, маны, документация, предложения...


первое что приходит в голову - брелок создает устройство в /dev. демон из него читает (что угодно, пусть даже нули. главное - сам процесс). вынимаем дивайс - демон превращается в зомби.
все упирается в то, как сделать так, чтобы при вставлянии зомби обратно оживал..

isden ★★★★★
()
Ответ на: комментарий от isden

>все упирается в то, как сделать так, чтобы при вставлянии зомби обратно оживал..

Никак. Zombie-процесс не может ожить. Его держит на этом свете только то, что никто его не поwaitpid'ил.

anonymous
()
Ответ на: комментарий от anonymous

а свой ядерный модуль не может помочь в этом деле?

isden ★★★★★
()
Ответ на: комментарий от isden

я немного наверное не дописал.

Суть в том чтобы данный фокус не зависил от ПО. Допустим у нас есть демон или модуль ядра который действительно читает брелок и каким-то образом приостанавливает в шедулере процессов процессы ПО и не даёт им выполнятся, хоть выкидывает их из списка.

guilder
() автор топика
Ответ на: комментарий от anon_666

как словить впринципе понятно - что делать с процессом

guilder
() автор топика
Ответ на: комментарий от isden

>первое что приходит в голову - брелок создает устройство в /dev. демон из него читает (что угодно, пусть даже нули. главное - сам процесс). вынимаем дивайс - демон превращается в зомби. все упирается в то, как сделать так, чтобы при вставлянии зомби обратно оживал..

Почему именно в зомби?

AptGet ★★★
()

Речь идет о HASP? Я правильно понимаю? Только надо чтобы программа повисла при удалении ключа? А почему тогда просто в ней не отслеживать периодически наличие ключа и выход из программы если его нет? Чтобы она продолжала работать и не теряла данные? Тогда просто пусть сохранит данные и выйдет.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

>Речь идет о HASP?

нет

Только надо чтобы программа повисла при удалении ключа?

не повисла, а ей бы не отдавалось бы процессорное время

guilder
() автор топика

Запускай стек приложений в отдельном LXC-контейнере. В хост-сичтеме лови собщения о втыкании/вЫтыкании ключа. При вЫтыкании - делай контейнеру «checkout», при втыкании - «restart»

Led ★★★☆☆
()
Ответ на: комментарий от guilder

> не повисла, а ей бы не отдавалось бы процессорное время
Делай процессу ренайс +20 и он этого процессорного времени будет в час по капле получать. А при втыкании брелока ренайс до 0.

Lumi ★★★★★
()

kill -s STOP не всем Вашим требованиям удовлетворяет, но самое простое

anonymous
()
Ответ на: комментарий от anonymous

И проверять лучше не событие, а факт наличия вставленного брелка - работает пока вставлен

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.