<% if flash[:notice] %>
<div class="notification is-primary global-notification">
<p class="notice"><%= notice %></p>
</div>
<% end %>
<% if flash[:alert] %>
<div class="notification is-danger global-notification">
<p class="alert"><%= alert %></p>
</div>
<% end %>
То, о чем вы просите, имеет последствия, выходящие далеко за рамки того, что вас просят выполнить. Например, если процесс не может быть остановлен, как Windows может нормально завершиться?
Я не знаю вашего начальника, поэтому вам придется самостоятельно оценить его уровень понимания. Если бы пользователь / менеджер попросил меня об этом, мне пришлось бы исследовать глубже, чтобы понять, что они на самом деле имеют в виду. Я подозреваю, что ваши пользователи хотят, чтобы поведение закрытия по умолчанию сворачивалось в область уведомлений, а не выходило из программы, как и в большинстве клиентов мгновенных сообщений, вместо того, чтобы вообще когда-либо закрывать программу.
Вам придется ограничить их права пользователей, пока они не смогут убить процессы.
Это не только звучит как плохая идея (это оскорбительно для ваших пользователей), но и вы не сможете помешать пользователям убить сам процесс.
Вам придется запустить два отдельных процесса - один для запуска приложения, а второй для мониторинга первого и перезапуска при необходимости.
Я согласен с этим это ужасная идея .
Сказав это, вы создадите две программы (возможно, службы Windows ). Обе программы будут контролировать друг друга, а также работать как клиент. Вам потребуется общая память , к которой оба процесса могут получить доступ, чтобы синхронизировать, какой клиент обрабатывает входящие запросы.
Вы можете перехватить большинство сигналов с помощью обработчиков, за исключением SIGKILL.
Вы можете создать оконный процесс сторожевого пса, который возрождает ваше приложение в случае его завершения.
Если хотите, вы можете назвать этот процесс как-нибудь очень безобидным, похожим на «sysmon», чтобы он не выглядел таким отрывочным.
Я действительно надеюсь, что это требование для работы, а не ваш способ вызвать падение человека.
Разве это не должно контролироваться вашей группой рабочих столов? У нас есть ПК в нескольких киосках, которые позволяют сотрудникам проверять личную электронную почту и прочее (Gmail, Yahoo, Hotmail и т. Д.), И разрешения пользователей на этих ПК не позволяют пользователям убивать процессы.
Вид раздражает, если IE блокируется, но я могу понять причину.
звучит так, будто у вас есть доступ к клиенту jabber. Можете ли вы сделать опрос в отдельном месте с указанием его статуса и времени запуска? Вы не отключаете возможность убить его ... но, по крайней мере, вы можете отслеживать его и отвечать оттуда.
Управляйте им с помощью службы Windows. Легко сделать на C #. Заблокируйте разрешения, чтобы остановить службу.
Примечание: я думаю, что ответы «это невозможно / ужасно / зло», возможно, не соответствуют вашей сути. Служба специально разработана для «продолжения работы», о чем вы и спрашиваете.
Вы не можете. Вы можете сделать это сложнее, но не невозможно. См. Гонка вооружений между программами и пользователями .
Я думаю, вам следует спросить разработчика требований что они подразумевают под приложением, которое невозможно «убить». Что они имеют в виду под словом «убить»?
Требование достаточно двусмысленно, чтобы я поговорил с разработчиком требований / руководителем, чтобы лучше понять, чего они хотят.
Поскольку это внутренняя служба, вы можете создать отдельную службу Windows, которая отслеживает активные процессы. Если процесс вашего jabber-клиента отсутствует, вы можете просто перезапустить его.
Затем используйте разрешения, чтобы запретить им доступ к службе Windows, чтобы отключить ее.
позвольте мне сначала сказать, что это ужасная идея.
но ... если вы должны это сделать, то, как я вижу, вредоносное программное обеспечение и спамогонщики делают это, чтобы создать три запущенных процессов, один из которых является основным, а два других будут отслеживать и перезапускать любой убитый процесс. среднему пользователю очень сложно убить 3 процесса одновременно.
Что еще более важно, ПОЧЕМУ вы переписываете jabber-клиент, когда это так много хороших, как Миранда и Пиджин уже существуют? Если это для ведения журнала, вы можете легко сделать эту серверную часть на своем сервере Jabber, не полагаясь на клиентов.
Если это необходимо для предотвращения других служб обмена мгновенными сообщениями, надежные правила брандмауэра помогут остановить это (но это не помешает супер-гениям, которые будут проксировать AIM + Gtalk через https на свои домашние серверы).
Обещать приостановить пользователей, которые убивают ваш регистратор трафика Jabber-клиент?