Я просто нашел статью, которая описывает, как сделать это.
Можно позволить Windows служить сервером NTP, как обрисовано в общих чертах здесь: http://www.windowsitpro.com/article/time-synchronization/how-can-i-enable-a-network-time-protocol-ntp-server-.aspx
Установить идентификатор исполняемых файлов, запускаемых пользователями A / B для пользователя C.
?
Прибыль
Я бы предложил комбинацию Monit и sudo для управления заданиями ...
Monit будет обрабатывать запуск / остановку / статус приложения.
Sudo с правами Monit предоставит вам возможность совместной работы.
См.: разрешить пользователю запускать определенное действие по мониторингу
Практика, когда пользователи совместно используют uid, очень не одобряется.
Предложения:
sudo
. Это решение goto для вопроса «как мне запустить команду от имени другого пользователя»: вы указываете записи в файле / etc / sudoers
, которые указывают, каким пользователям (или группам и т. Д.) Разрешено запускать команды как разные пользователи и при каких обстоятельствах. Его конфигурация также может быть помещена в каталог LDAP. sudo
. (т. е. роль, которая позволяет пользователю выполнять sudo su - oracle
для получения оболочки oracle ). Это заставляет пользователей входить в систему как они сами, прежде чем стать пользователем приложения, и оставляет лучший контроль trail. screen
или tmux
, хотя и с некоторой абстракцией между входом в систему и общие учетные записи приложений по-прежнему рекомендуется. Вы должны попытаться избежать этого, если процессы не имеют какого-либо терминального взаимодействия . Вероятно, лучше всего использовать прокси-процесс под userA / userB, читающий файлы управления для каждого PID.
some_command.sh
:
thecommand &
CTL=/var/run/%1.ctl
echo %1 > $CTL
while read -n 1 cmd; do
case $cmd in
k)
kill %1
exit $?
;;
s)
kill -TSTP %1
;;
...
done < $CTL
Рабочие процессы могут читать элемент управления файлы ... но тогда они перестали бы продолжать, не так ли.