В журнале системных событий на машине, на которой запущена служба, должно быть событие, когда служба закрывается. В подробностях события будет указан пользователь, который инициировал запрос на остановку.
Вы можете получить доступ к журналу событий через код, однако я не уверен, что вы можете захватить информацию о событии, связанную с закрытием службы, в методе OnStop. Вот код, который вы могли бы адаптировать к вашей ситуации, если хотите попробовать -
foreach (EventLog logs in System.Diagnostics.EventLog.GetEventLogs())
{
if (logs.LogDisplayName.ToUpper() == "SYSTEM")
{
foreach (EventLogEntry logEntry in logs.Entries)
{
if(logEntry.TimeGenerated >= DateTime.Now.AddMinutes(-2))
{
Console.WriteLine("User: {0} Message: {1}", logEntry.UserName, logEntry.Message);
}
}
}
}