Как запустить force stopped listing
Перейти к содержимому

Как запустить force stopped listing

  • автор:

Управление службами

Этот пример применяется только к Windows PowerShell 5.1.

Существует восемь основных командлетов службы , предназначенных для широкого спектра задач службы . В этой статье рассматривается только перечисление и изменение состояния выполнения служб. Список командлетов служб можно получить с помощью Get-Command *-Service . Сведения о каждом командлете можно найти с помощью Get-Help , например Get-Help New-Service .

Получение служб

Получить службы на локальном или удаленном компьютере можно с помощью командлета Get-Service . Как и в случае с Get-Process , использование команды Get-Service без параметров возвращает все службы. Можно фильтровать по имени, даже используя звездочку как подстановочный знак:

PS> Get-Service -Name se* Status Name DisplayName ------ ---- ----------- Running seclogon Secondary Logon Running SENS System Event Notification Stopped ServiceLayer ServiceLayer 

Так как не всегда очевидно, каково реальное имя службы, может потребоваться найти службы по отображаемому имени. Вы можете выполнять поиск по определенному имени, использовать подстановочные знаки или предоставлять список отображаемых имен:

PS> Get-Service -DisplayName se* Status Name DisplayName ------ ---- ----------- Running lanmanserver Server Running SamSs Security Accounts Manager Running seclogon Secondary Logon Stopped ServiceLayer ServiceLayer Running wscsvc Security Center PS> Get-Service -DisplayName ServiceLayer, Server Status Name DisplayName ------ ---- ----------- Running lanmanserver Server Stopped ServiceLayer ServiceLayer 

Получение удаленных служб

С помощью Windows PowerShell можно использовать параметр ComputerName командлета Get-Service для получения служб на удаленных компьютерах. Параметр ComputerName принимает несколько значений и подстановочные знаки, что позволяет получить службы на нескольких компьютерах с помощью одной команды. Например, приведенная ниже команда получает службы на удаленном компьютере Server01.

Get-Service -ComputerName Server01 

Начиная с PowerShell 6.0 командлеты *-Service не имеют параметра ComputerName . Получать службы на удаленных компьютерах можно с помощью компонента удаленного взаимодействия PowerShell. Например, приведенная ниже команда получает службы на удаленном компьютере Server02.

Invoke-Command -ComputerName Server02 -ScriptBlock

Также управлять службами можно при помощи других командлетов *-Service . Дополнительные сведения о службе удаленного взаимодействия PowerShell см. в разделе about_Remote.

Получение необходимых и зависимых служб

Командлет Get-Service имеет два параметра, которые удобно использовать при администрировании служб. Параметр DependentServices получает службы, которые зависят от данной службы.

Параметр RequiredServices получает службы, от которых зависит служба LanmanWorkstation.

PS> Get-Service -Name LanmanWorkstation -RequiredServices Status Name DisplayName ------ ---- ----------- Running MRxSmb20 SMB 2.0 MiniRedirector Running bowser Bowser Running MRxSmb10 SMB 1.x MiniRedirector Running NSI Network Store Interface Service 

Параметр DependentServices получает, для которых требуется служба LanmanWorkstation.

PS> Get-Service -Name LanmanWorkstation -DependentServices Status Name DisplayName ------ ---- ----------- Running SessionEnv Terminal Services Configuration Running Netlogon Netlogon Stopped Browser Computer Browser Running BITS Background Intelligent Transfer Ser. 

Следующая команда возвращает все службы с зависимостями. Командлет Format-Table для отображения свойств Status, Name, RequiredServices и DependentServices служб.

Get-Service -Name * | Where-Object | Format-Table -Property Status, Name, RequiredServices, DependentServices -auto 

Остановка, запуск, приостановка и перезапуск служб

Все командлеты Service имеют схожую общую форму. Службы можно указать по общему имени или отображаемому имени, они также принимают списки и подстановочные знаки в качестве значений. Для остановки очереди печати принтера используйте:

Stop-Service -Name spooler 

Чтобы запустить очередь печати после его остановки, используйте следующую команду:

Start-Service -Name spooler 

Для приостановки очереди печати принтера используйте:

Suspend-Service -Name spooler 

Командлет Restart-Service работает так же, как и другие командлеты службы:

PS> Restart-Service -Name spooler WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting. WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting. PS> 

Обратите внимание, что вы получаете повторное предупреждающее сообщение о запуске очереди печати печати. При выполнении операции службы, которая занимает некоторое время, PowerShell уведомляет вас о том, что все еще пытается выполнить задачу.

Если требуется перезапустить несколько служб, можно получить список служб, отфильтровать его и выполнить перезапуск:

PS> Get-Service | Where-Object -FilterScript | Restart-Service WARNING: Waiting for service 'Computer Browser (Browser)' to finish stopping. WARNING: Waiting for service 'Computer Browser (Browser)' to finish stopping. Restart-Service : can't stop service 'Logical Disk Manager (dmserver)' because it has dependent services. It can only be stopped if the Force flag is set. At line:1 char:57 + Get-Service | Where-Object -FilterScript | Restart-Service  

Эти командлеты службы не имеют параметра ComputerName , но их можно запустить на удаленном компьютере с помощью командлета Invoke-Command . Например, приведенная ниже команда перезапускает службу очередь печати принтера на удаленном компьютере Server01.

Invoke-Command -ComputerName Server01

Настройка свойств службы

Командлет Set-Service изменяет свойства службы на локальном или удаленном компьютере. Так как состояние службы является свойством, этот командлет можно использовать для запуска, остановки и приостановки службы. Командлет Set-Service также имеет параметр StartupType, позволяющий изменять тип запуска службы.

Чтобы использовать Set-Service в Windows Vista и более поздних версиях Windows, откройте PowerShell с параметром Запуск от имени администратора .

Дополнительные сведения см. в статье о Set-Service.

См. также раздел

  • about_Remote
  • Get-Service
  • Set-Service
  • Restart-Service
  • Suspend-Service

Совместная работа с нами на GitHub

Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.

Список важных команд для работы с Docker-compose

Docker-compose является мощным инструментом для создания и управления Docker-контейнерами. Этот инструмент позволяет создавать, запускать и управлять множеством контейнеров, взаимодействуя друг с другом. В этой статье мы рассмотрим несколько команд, которые могут быть полезны при работе с Docker-compose.

  1. Команды для управления контейнерами:
  • docker-compose up: для запуска всех контейнеров, определенных в файле docker-compose.yml.

Например, команда "docker-compose up" запустит все контейнеры из файла docker-compose.yml в текущей директории.

  • docker-compose down: для остановки и удаления всех контейнеров, определенных в файле docker-compose.yml.

Например, команда "docker-compose down" остановит и удалит все контейнеры, которые были запущены с помощью файла docker-compose.yml.

  1. Команды для управления службами:
  • docker-compose ps: для отображения списка запущенных контейнеров и их статусов.

Список важных команд для работы с Docker-compose

Например, команда "docker-compose ps" покажет все запущенные контейнеры из файла docker-compose.yml.

  • docker-compose up -d [SERVICE]: для запуска конкретной службы из файла docker-compose.yml.

Например, команда "docker-compose up nextcloud" запустит только контейнер nextcloud из файла docker-compose.yml который был остановлен.

Список важных команд для работы с Docker-compose-1Список важных команд для работы с Docker-compose-2

  1. Команды для управления образами:
  • docker-compose pull: для загрузки всех образов, определенных в файле docker-compose.yml. Например, команда "docker-compose pull" загрузит все образы, указанные в файле docker-compose.yml.
  • docker-compose build: для сборки образов, определенных в файле docker-compose.yml. Например, команда "docker-compose build" соберет все образы, указанные в файле docker-compose.yml.
  1. Команды для управления логами:
  • docker-compose logs: для просмотра логов всех контейнеров, определенных в файле docker-compose.yml. Например, команда "docker-compose logs" выведет логи всех контейнеров из файла docker-compose.yml.

Список важных команд для работы с Docker-compose-3

  • docker-compose logs [SERVICE]: для просмотра логов конкретной службы из файла docker-compose.yml. Например, команда "docker-compose logs nextcloud_db" выведет логи только контейнера базы данных из файла docker-compose.yml.

Список важных команд для работы с Docker-compose-4

  1. Команды для управления контейнерами в работе:
  • docker-compose stop: для остановки всех контейнеров, определенных в файле docker-compose.yml, но без их удаления. Например, команда "docker-compose stop" остановит все контейнеры из файла docker-compose.yml.

Список важных команд для работы с Docker-compose-5

  • docker-compose start: для запуска всех остановленных контейнеров, определенных в файле docker-compose.yml. Например, команда "docker-compose start" запустит все остановленные контейнеры из файла docker-compose.yml.

Список важных команд для работы с Docker-compose-6

  • docker-compose up --force-recreate заставляет Docker Compose пересоздать контейнеры, даже если их конфигурация или образ не изменился. Это означает, что Compose остановит и удалит существующие контейнеры для указанных в файле docker-compose.yml сервисов, а затем создаст новые контейнеры с нуля, используя последнюю версию образов, определенных в файле. Использование опции --force-recreate полезно в ситуациях, когда вы внесли изменения в файл docker-compose.yml, которые затрагивают конфигурацию контейнера, например, переменные среды или отображение портов.
  • docker-compose networkls: для отображения списка сетей, определенных в файле docker-compose.yml если они есть. Так же можно воспользоваться командой docker networkls.

Список важных команд для работы с Docker-compose-7

  • docker-compose network create [NETWORK]: для создания новой сети в файле docker-compose.yml. Например, команда "docker-compose network create frontend" создаст новую сеть с названием frontend в файле docker-compose.yml.
  • docker-compose network rm [NETWORK]: для удаления сети, определенной в файле docker-compose.yml. Например, команда "docker-compose network rm frontend" удалит сеть с названием frontend из файла docker-compose.yml.
  1. Команды для управления переменными окружения:
  • docker-compose config: для проверки корректности файла docker-compose.yml и отображения всех переменных окружения, определенных в нем. Например, команда "docker-compose config" проверит корректность файла docker-compose.yml и покажет все переменные окружения, определенные в нем.

Список важных команд для работы с Docker-compose-8

  • docker-compose exec [SERVICE] [COMMAND]: для выполнения команды внутри контейнера, определенного в файле docker-compose.yml. Например, команда "docker-compose exec nextcloud ls" выполнит команду "ls" внутри контейнера nextcloud, который определен в файле docker-compose.yml.

Список важных команд для работы с Docker-compose-9

  1. Команды для управления объемами:
  • docker-compose volume ls: для отображения списка всех объемов, определенных в файле docker-compose.yml. Например, команда "docker-compose volume ls" или "docker volume ls" покажет все объемы, которые определены в файле docker-compose.yml.

Список важных команд для работы с Docker-compose-10

  • docker-compose volume create [VOLUME]: для создания нового объема, определенного в файле docker-compose.yml. Например, команда "docker-compose volume create db_data" создаст новый объем с названием db_data в файле docker-compose.yml.
  • docker-compose volume rm [VOLUME]: для удаления объема, определенного в файле docker-compose.yml. Например, команда "docker-compose volume rm db_data" удалит объем с названием db_data из файла docker-compose.yml.

В этой статье мы рассмотрели основные команды для работы с Docker Compose, такие, как запуск и остановка контейнеров, создание сетей и томов, а также управление объемами. Знакомство с этими командами поможет более эффективно использовать Docker Compose при разработке и деплое приложений в контейнерах.

Как обнаружить, что приложение было остановлено

Есть ли какой-нибудь способ обнаружить, что прошлый запуск приложения закончился остановкой (force stop, terminate)? Может быть временный флаг или состояние, то что можно проверить на стороне приложения (не во время, а уже после, с новым стартом). Например, попробовал читать WorkInfo от WorkManager . Но его запрос выживает после остановки приложения. Хочу использовать для восстановления расписания от AlarmManager . Чтобы не устанавливать всё расписание при каждом запуске. Другие ответы предлагали PendingIntent с флагом FLAG_NO_CREATE (он дает null если интента не существует). Но как оказалось PendingIntent продолжает существовать при запуске после остановки. Хотя alarm уже отменен. Поэтому условие не срабатывает.

Отслеживать
задан 23 дек 2022 в 7:49
1,408 7 7 серебряных знаков 24 24 бронзовых знака

AlarmManager ставится на первое событие, а после его прихода ставится на следующее и подобных вопросов не возникает в принципе.

23 дек 2022 в 14:30

@Style-7 это создает другие проблемы (вычисление следующего события, их возможное одновременное срабатывание для разных задач, каждый раз тянуть из базы или предварительно вычислять очередь и т.д.,). Проще уж действительно сразу все обновлять каждый запуск, чем эти условия выстраивать.

23 дек 2022 в 21:12

в свое время я подключал sentry android для мониторинга ошибок, и там уже есть подобная проверка и если приложение закончилось ошибкой то мы при старте показывали диалоговое окно

26 дек 2022 в 11:10

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

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

Вот пример того, как это можно реализовать:

long lastRunTimestamp = getLastRunTimestamp(); // читаем последнюю сохраненную временную метку long currentTimestamp = System.currentTimeMillis(); // читаем текущую временную метку long threshold = TimeUnit.HOURS.toMillis(24); // задаем порог разницы в 24 часа if (currentTimestamp - lastRunTimestamp > threshold) < // приложение было остановлено // здесь вы можете выполнять необходимые действия // например, восстанавливать расписание от AlarmManager >saveLastRunTimestamp(currentTimestamp); // сохраняем текущую временну 

Теперь нужно реализовать функции getLastRunTimestamp и saveLastRunTimestamp , которые будут считывать и сохранять временную метку соответственно. Для этого можно использовать, например, SharedPreferences .

Функция getLastRunTimestamp будет выглядеть примерно так:

private long getLastRunTimestamp()

Таким образом, вы можете обнаружить, что приложение было остановлено, сравнивая временную метку предыдущего запуска с текущей временной меткой и выполняя необходимые действия при необходимости. Не забудьте сохранить текущую временную метку после каждого запуска, чтобы использовать ее при следующем запуске.

Эксперимент force_stopped_listing в Яндекс. браузере

Как включить эксперимент force_stopped_listing в Яндекс. браузере? Кейс на скриншоте. Помогите, плиииз!

Лучший ответ

1.Клавиша F12
2. Вкладка Console, справа от неё значок настроек (шестерёнка), тык на шестерёнку.
3. В выпавшем меню выбираем Experiments
4. В списке экспериментов находим/не находим нужный и ставим/не ставим галочку

muRmotУченик (163) 2 года назад

В экспериментах, в моём браузере, нету forced stopped listing.

muRmot, привет! хотела вам 1-2 вопроса задавать если конечно можете) как можно с вами связаться, или пишите мне в телеге @jesuissoul. Буду очень благодарна вам! Спасибо!

*Ася*Мастер (1206) 2 года назад

У меня его тоже нет, хоть и три браузера

Остальные ответы

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *