private List <int> GetOtherNzbDroneProcessIds() { try { var currentId = _processProvider.GetCurrentProcess().Id; var otherProcesses = _processProvider.FindProcessByName(ProcessProvider.NZB_DRONE_CONSOLE_PROCESS_NAME) .Union(_processProvider.FindProcessByName(ProcessProvider.NZB_DRONE_PROCESS_NAME)) .Select(c => c.Id) .Except(new[] { currentId }) .ToList(); if (otherProcesses.Any()) { _logger.Info("{0} instance(s) of Sonarr are running", otherProcesses.Count); } return(otherProcesses); } catch (Exception ex) { _logger.Warn(ex, "Failed to check for multiple instances of Sonarr."); return(new List <int>()); } }
private string GetUpdaterArgs(string updateSandboxFolder) { var processId = _processProvider.GetCurrentProcess().Id.ToString(); var executingApplication = _runtimeInfo.ExecutingApplication; return(String.Join(" ", processId, updateSandboxFolder.WrapInQuotes(), executingApplication.WrapInQuotes())); }
private string GetUpdaterArgs(string updateSandboxFolder) { var processId = _processProvider.GetCurrentProcess().Id.ToString(); var executingApplication = _runtimeInfo.ExecutingApplication; return(string.Join(" ", processId, updateSandboxFolder.TrimEnd(Path.DirectorySeparatorChar).WrapInQuotes(), executingApplication.WrapInQuotes(), _startupContext.PreservedArguments)); }
public virtual void EnsurePriority(object sender) { try { if (_processProvider.GetCurrentProcessPriority() != ProcessPriorityClass.Normal) { _processProvider.SetPriority(_processProvider.GetCurrentProcess().Id, ProcessPriorityClass.Normal); } } catch (Exception e) { _logger.WarnException("Unable to verify priority", e); } }
private List <int> GetOtherNzbDroneProcessIds() { var currentId = _processProvider.GetCurrentProcess().Id; var otherProcesses = _nzbDroneProcessProvider.FindNzbDroneProcesses() .Select(c => c.Id) .Except(new[] { currentId }) .ToList(); if (otherProcesses.Any()) { _logger.Info("{0} instance(s) of NzbDrone are running", otherProcesses.Count); } return(otherProcesses); }
private List <int> GetOtherNzbDroneProcessIds() { var currentId = _processProvider.GetCurrentProcess().Id; var otherProcesses = _processProvider.FindProcessByName(ProcessProvider.NZB_DRONE_CONSOLE_PROCESS_NAME) .Union(_processProvider.FindProcessByName(ProcessProvider.NZB_DRONE_PROCESS_NAME)) .Select(c => c.Id) .Except(new[] { currentId }) .ToList(); if (otherProcesses.Any()) { _logger.Info("{0} instance(s) of NzbDrone are running", otherProcesses.Count); } return(otherProcesses); }
public void Write() { var filename = Path.Combine(_appFolderInfo.AppDataFolder, "nzbdrone.pid"); if (OsInfo.IsMono) { try { File.WriteAllText(filename, _processProvider.GetCurrentProcess().Id.ToString()); } catch (Exception ex) { _logger.Error("Unable to write PID file: " + filename, ex); throw; } } }
private void InstallUpdate(UpdatePackage updatePackage) { try { var updateSandboxFolder = _appFolderInfo.GetUpdateSandboxFolder(); var packageDestination = Path.Combine(updateSandboxFolder, updatePackage.FileName); if (_diskProvider.FolderExists(updateSandboxFolder)) { _logger.Info("Deleting old update files"); _diskProvider.DeleteFolder(updateSandboxFolder, true); } _logger.ProgressInfo("Downloading update {0} [{1}]", updatePackage.Version, updatePackage.Branch); _logger.Debug("Downloading update package from [{0}] to [{1}]", updatePackage.Url, packageDestination); _httpProvider.DownloadFile(updatePackage.Url, packageDestination); _logger.ProgressInfo("Extracting Update package"); _archiveService.Extract(packageDestination, updateSandboxFolder); _logger.Info("Update package extracted successfully"); _logger.Info("Preparing client"); _diskProvider.MoveFolder(_appFolderInfo.GetUpdateClientFolder(), updateSandboxFolder); _logger.Info("Starting update client {0}", _appFolderInfo.GetUpdateClientExePath()); _logger.ProgressInfo("NzbDrone will restart shortly."); _processProvider.Start(_appFolderInfo.GetUpdateClientExePath(), _processProvider.GetCurrentProcess().Id.ToString()); } catch (Exception ex) { _logger.ErrorException("Update process failed", ex); } }