Какую команду надо прописать для закрытия программы
Перейти к содержимому

Какую команду надо прописать для закрытия программы

  • автор:

Как закрыть программу принудительно, если она зависла и не реагирует на нажатия.

sposobyi-zakryit-programmu

Доброго времени!

В ряде случаев даже самые «стабильные» и надежные программы могут перестать отзываться на какие-либо нажатия мышки/клавиатуры (т.е. попросту зависнуть).

Для решения вопроса, можно, конечно, перезагрузить ПК/ноутбук — но далеко не всегда это удобно (часть данных в др. ПО будет сброшена и не сохранится. ) .

Логично, что лучше всего закрыть только эту конкретно-зависшую программу. Всем известное сочетание ALT+F4 — далеко не всегда решает проблему, и, собственно, поэтому набросал небольшую заметку с несколькими способами принудительной ликвидации процесса.

�� Кстати!

Если ПК/ноутбук вообще не реагирует ни на одну из кнопок клавиатуры — то скорее всего зависла не только отдельно-взятая программа, но и в целом система.

Если так, то для перезагрузки/выключения устройства — зажмите кнопку питания (Power) на 4-5 сек. (разумеется, все несохраненные данные будут утеряны) .

Способы закрыть не отвечающую программу

�� Первый

Итак, самый очевидный и простой вариант — просто кликнуть правой кнопкой мышки по значку зависшей программы на панели задач Windows. После, во всплывшем окне достаточно будет выбрать вариант «закрыть окно» .

Закрыть окно

�� Второй

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

  • WIN , или WIN+TAB , или ALT+TAB , или ALT+Enter — чтобы свернуть окно;
  • ALT+F4 , или ESC , или ALT+Q — для закрытия (выхода) из программы.

ALT+Q / клавиатура

Перечисленные «горячие» сочетания клавиш работают с подавляющем большинством ПО для Windows.

�� Третий

Нажмите сочетание клавиш Ctrl+Shift+Esc (или Ctrl+Alt+Del) для вызова диспетчер задач. Далее во вкладке процессы найдите зависшую программу (процесс), кликните по ней правой кнопкой мыши и в появившемся выберите «Снять задачу» . Через 3-5 сек. программа должна быть закрыта.

Ctrl+Shift+Esc или Ctrl+Alt+Del — открыть диспетчер задач

Ctrl+Shift+Esc или Ctrl+Alt+Del — открыть диспетчер задач

Кстати, если рабочий стол после этого стал отображаться «как-то не так» (или вообще не видно) — перезапустите процесс «Проводник» (или «Explorer» на англ.).

Примечание: также проводник можно перезапустить из командной строки, введя taskkill /F /IM explorer.exe & start explorer и нажав Enter.

�� Четвертый

Командная строка — универсальная штука, которая может помочь и с закрытием (ликвидацией) зависших процессов (программ). Кстати, если вы наловчитесь с ее использованием — закрывать зависшие полно-экранные приложения можно будет даже в «слепую» (когда на экране ничего не отображается).

Как это делается:

  1. сначала нужно открыть �� командную строку;
  2. после ввести tasklist и нажать Enter;
  3. на экране появится список всех процессов (следует уточнить имя процесса/программы, которую нужно закрыть);
  4. после ввести taskkill /IM chrome.exe /f и нажать Enter (вместо «chrome.exe» — указывается имя нужного процесса) .

Убиваем процесс через командную строку

Убиваем процесс через командную строку

�� Пятый

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

Чтобы ликвидировать (закрыть) в нем любую из запущенных программ — нужно просто ее выбрать в списке, затем нажать ПКМ по ее имени и в появившемся окне выбрать «Terminate tree» (см. пример ниже ��).

Process Hacker 2 — закрыть дерево процессов

Process Hacker 2 — закрыть дерево процессов

Стоит отметить, что Process Hacker закроет сразу всё дерево процессов, связанных с этой программой (чего не делают многие др. программы. ).

PS

Если у вас часто начала зависать какая-либо программа (еще хуже программы) — обратите внимание на:

  1. версию ПО (нежелательно использовать различные бета-версии). Проверьте, совместима ли версия ПО с вашей ОС (в помощь: какая версия Windows установлена на моем компьютере);
  2. обновите драйвера (желательно с офиц. сайта);
  3. проверьте жесткий диск (если он начал «сыпаться» — подвисания будут идти постоянно);
  4. прогоните систему с помощью спец. «одноразовых» антивирусных продуктов;
  5. возможно, вашему приложению не хватает ОЗУ (посмотрите при работе ПО — сколько памяти занято в диспетчере задач).

Кроме этого, рекомендую ознакомиться с тематическими инструкциями (ссылки ниже).

�� В помощь!

1) Вылетает или зависает игра. Что делать?

2) Зависает ноутбук: что делать? Диагностика и устранение причин зависания

3) Ошибка: Kernel-Power код 41, категория 63. Компьютер перезагружается или зависает

На этом пока всё.

Первая публикация: 24.04.2020

Как самостоятельно закрыть ООО: пошаговая инструкция

Добровольная ликвидация ООО — процесс долгий и непростой. Он занимает примерно 4 месяца, а может растянуться и на год. Вам предстоит трижды подать заявление в налоговую, два раза подготовить бухгалтерский баланс и сделать одну публикацию в СМИ. Обо всём по порядку — в нашей инструкции.

1 шаг. Принять решение о ликвидации

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

В протоколе собрания или решении учредителя напишите, что вы:

  1. Решили начать добровольную ликвидацию ООО.
  2. Утвердили состав ликвидационной комиссии и её председателя или назначили единоличного ликвидатора.
  3. Утвердили порядок и сроки ликвидации. Максимальный срок — один год, и безопаснее указывать именно его. Например, если в протоколе указать, что срок ликвидации составит три месяца, а процесс затянется — продлить его можно будет, только обратившись в Арбитражный суд. А значит, платить пошлину в размере 6 000 ₽ и ждать решения суда.

30 дней Эльбы в подарок

Оцените все возможности онлайн-бухгалтерии бесплатно

Попробовать бесплатно

2 шаг. Сообщить о ликвидации в налоговую

В течение трёх рабочих дней после принятия решение о ликвидации, подайте в регистрирующую налоговую:

  • уведомление по форме № Р15016. Есть два варианта: а) подать уведомление на бумаге, б) воспользоваться сервисом налоговой — понадобится электронная подпись. В обоих случаях уведомление нужно заверить у нотариуса.
  • протокол собрания учредителей или решение единственного учредителя о ликвидации фирмы.

Если не подать документы в налоговую в течение трёх дней, могут оштрафовать на 5 000 рублей.

Как подать документы:

  • лично
  • по почте ценным письмом с описью вложений
  • в электронном виде через сайт Госуслуг
  • через многофункциональный центр — но не все МФЦ принимают эти документы, позвоните им заранее.

Через 5 рабочих дней налоговая выдаст вам лист о внесении в ЕГРЮЛ записи о том, что организация находится в процедуре ликвидации. С этого момента нельзя изменять учредительные документы и участвовать как ООО в составе других организаций.

Уведомлять ПФР и ФСС о ликвидации больше не нужно, налоговики сделают это самостоятельно.

3 шаг. Рассказать о ликвидации в СМИ, опубликовать сведения на Федресурсе и сообщить контрагентам

  1. Опубликуйте в журнале «Вестник государственной регистрации» сообщение о ликвидации фирмы, порядке и сроке заявления требований кредиторами. Этот срок не может быть меньше двух месяцев. За это время все, кому должна ваша организация, могут потребовать возврата долга.
  2. В течение трёх рабочих дней с даты принятия решения о ликвидации внесите сведения в Единый федеральный реестр о фактах деятельности юридических лиц (Федресурс) . Для этого понадобится зайти на портал с электронной подписью, а также выставить и оплатить счёт за размещение сведений. Другой способ — через нотариуса с использованием его электронной подписи.
  3. Направьте письменные уведомления о ликвидации контрагентам, перед которыми у вас есть долги. Составьте их в свободной форме. Срок не установлен, но рекомендуем сделать это сразу после публикации в СМИ. Лучше всего направить письмо почтой — с объявленной ценностью и описью вложений. Так вы подтвердите, что письменно уведомили кредиторов. Шаблон уведомления контрагентов.

4 шаг. Сообщить в службу занятости и сотрудникам об увольнении

  1. Предупредите всех сотрудников о предстоящем увольнении не позднее, чем за 2 месяца. Для этого составьте письменное уведомление и ознакомьте с ним работников под роспись. Основание увольнения — по инициативе работодателя в связи с прекращением деятельности организации в соответствии с п.1 ст. 81 ТК РФ.

5 шаг. Подготовить промежуточный ликвидационный баланс и сдать его в налоговую

Минимум через два месяца после публикации сообщения о ликвидации в СМИ подготовьте промежуточный ликвидационный баланс. Специальных требований нет, но на практике его составляют по тем же правилам, что и обычный бухбаланс по форме №1, и добавляют сведения:

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

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

Когда промежуточный бухбаланс готов, утвердите его на собрании учредителей или решением единственного участника, чтобы утвердить бухбаланс.

Подайте ликвидационный баланс в налоговую вместе с уведомлением № Р15016 . Приложите к документам подтверждение публикации в «Вестнике государственной регистрации» и протокол собрания учредителей или решение единственного участника ООО об утверждении бухбаланса. По закону они не нужны, но на практике налоговая может их попросить.

6 шаг. Рассчитаться по долгам

Платите по долгам в порядке очередности по Гражданскому кодексу. Сразу после утверждения ликвидационного баланса рассчитайтесь:

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

Спустя месяц со дня утверждения ликвидационного баланса, погасите долги третьей и четвертой очереди:

  • в третью очередь заплатите все налоги и страховые взносы, штрафы и пени,
  • в четвертую очередь — оставшиеся долги.

Если денег не хватает, ликвидационная комиссия продаёт имущество организации на торгах. А если и выручка от продажи имущества не покроет долги компании, тогда нужно открывать процедуру банкротства. Для этого лучше обратиться к специалистам по делам о банкротстве.

7 шаг. Составить окончательный ликвидационный баланс

После расчётов с сотрудниками, контрагентами и государством, составьте и утвердите ликвидационный баланс. Он также составляется по общим правилам подготовки бухгалтерского баланса и утверждается на общем собрании учредителей или решением единственного участника ООО.

8 шаг. Отчитаться по налогам, уволенным сотрудникам и снять с учёта кассу

В течение месяца с момента утверждения ликвидационного баланса и до подачи документов в налоговую на закрытие, сдайте в фонды отчёты по уволенным сотрудникам:

  • СЗВ-Стаж в составе ЕФС-1 в Социальный фонд на всех сотрудников, которые работали у вас в течение года ликвидации;
  • Отчёт о персонифицированных сведениях в налоговую, если в течение последнего месяца ликвидации в ООО были сотрудники по трудовым и гражданско-правовым договорам;
  • СЗВ-ТД в составе ЕФС-1 за кадровые события, например, за увольнения;
  • расчёт по страховым взносам в налоговую,
  • 4-ФСС в составе ЕФС-1. Если ликвидируете ООО до окончания расчётного периода — отправьте отчёт до подачи документов о ликвидации. На титульном листке поставьте отметку «Прекращение деятельности».

Также сдайте налоговую отчётность — закон не устанавливает сроки, но нужно это сделать до перехода к последнему этапу.

  • декларацию по УСН
  • 6-НДФЛ.

Снять кассу с учёта в налоговой можно несколькими способами: подать заявление в инспекции, на портале ФНС или в личном кабинете оператора фискальных данных (ОФД). Срок подачи заявления законодательно не ограничен.

9 шаг. Подать в налоговую документы на ликвидацию ООО

После утверждения ликвидационного баланса учредители могут разделить между собой имущество организации. И только в последнюю очередь подают документы в налоговую на закрытие:

  1. Заявление по форме Р15016.
  2. Ликвидационный бухгалтерский баланс
  3. Квитанцию об уплате госпошлины 800 рублей. Согласно поправкам, с 2019 года госпошлина не уплачивается в случае представления в регистрирующий орган электронных документов, необходимых для регистрации ликвидации юрлица. Статья 333.35 НК РФ

Подайте документы одним из способов:

  • лично
  • по почте ценным письмом с описью вложений
  • в электронном виде через сайт Госуслуг
  • через многофункциональный центр — но не все МФЦ принимают эти документы, позвоните им заранее.

Кто может помочь с документами

Есть сервис Документовед — он здорово помогает подготовить документы для ликвидации ООО.

Рассказываем о сложных вещах незанудно, понятно и с юмором на ютуб-канале

А что если не закрывать ООО?

Закрывать ООО — долго и сложно, поэтому часто встречаются организации без сотрудников, доходов и сделок. Такие фирмы не платят налоги и взносы, но по-прежнему должны сдавать нулевую отчётность.

Бывают брошенные организации, у которых нет движений по банковскому счёту и которые не сдают отчётность. Если это продолжается больше 12 месяцев, у налоговой появляется основание ликвидировать ООО в одностороннем порядке без согласия учредителей. Но это право, а не обязанность налоговой, поэтому на практике случается редко. Гораздо чаще брошенная организация продолжает числиться в ЕГРЮЛ, и её штрафуют за несданную отчётность.

Ещё один вариант избавиться от ООО — продать его. Это проще, чем закрыть организацию, но тут есть свои минусы:

  • Такая возможность должна быть предусмотрена в уставе организации.
  • Договор купли-продажи обязательно должен быть заверен у нотариуса — это стоит минимум 10 тысяч рублей, а максимальная стоимость может достигать 150 тысяч.

Статья актуальна на 03.07.2023

Завершение программы C++

Функция, объявленная exit в , завершает программу C++. Значение, предоставленное в качестве аргумента exit , возвращается операционной системе в качестве возвращаемого кода программы или кода выхода. Принято, чтобы нулевым кодом возврата обозначалось, что программа завершена успешно. Константы EXIT_FAILURE можно использовать, а EXIT_SUCCESS также определенные в , чтобы указать успешность или сбой программы.

Функция abort

Функция abort , объявленная в стандартном формате, включает , завершает программу C++. Разница между exit и abort заключается в том, что exit обработка завершения среды выполнения C++ выполняется (вызывается глобальные деструкторы объектов). abort немедленно завершает программу. Функция abort проходит обычный процесс уничтожения для инициализированных глобальных статических объектов. Также осуществляется обход всей специальной обработки, которая была задана с помощью функции atexit .

Корпорация Майкрософт: по соображениям совместимости Windows реализация abort microsoft может разрешить выполнение кода завершения библиотеки DLL в определенных обстоятельствах. Дополнительные сведения см. в разделе abort .

Функция atexit

Используйте функцию atexit , чтобы указать действия, выполняемые до завершения программы. Перед выполнением функции выхода не инициализированы глобальные статические объекты, инициализированные перед вызовом atexit .

return оператор in main

Инструкция return позволяет указать возвращаемое значение из main . Оператор return в main первую очередь действует как любая другая return инструкция. Все автоматические переменные уничтожаются. main Затем вызывает возвращаемое exit значение в качестве параметра. Рассмотрим следующий пример:

// return_statement.cpp #include struct S < int value; >; int main() < S s< 3 >; exit( 3 ); // or return 3; > 

return Операторы exit , описанные в предыдущем примере, имеют аналогичное поведение. Как завершить программу, так и вернуть значение 3 операционной системе. Разница заключается в том, что exit не уничтожает автоматическую переменную s , а return оператор делает.

Как правило, C++ требует, чтобы функции, имеющие возвращаемые типы, отличные от void возвращаемого значения. Функция является исключением. Она main может завершиться без инструкции return . В этом случае он возвращает значение, зависящее от реализации, в вызывающий процесс. (По умолчанию MSVC возвращает значение 0.)

Уничтожение потоков и статических объектов

При вызове exit напрямую (или при вызове после оператора из main ), объекты потоков, связанные с текущим потоком return , уничтожаются. Затем статические объекты уничтожаются в обратном порядке их инициализации (после вызовов функций, указанных в , если таковые имеются atexit ). В следующем примере показано выполнение такого процесса инициализации и удаления.

Пример

В следующем примере статические объекты sd1 создаются и sd2 инициализированы перед записью main . После завершения работы этой программы с помощью инструкции return сначала sd2 уничтожается, а затем sd1 . Деструктор класса ShowData закрывает файлы, связанные с этими статическими объектами.

// using_exit_or_return1.cpp #include class ShowData < public: // Constructor opens a file. ShowData( const char *szDev ) < errno_t err; err = fopen_s(&OutputDev, szDev, "w" ); >// Destructor closes the file. ~ShowData() < fclose( OutputDev ); >// Disp function shows a string on the output device. void Disp( char *szData ) < fputs( szData, OutputDev ); >private: FILE *OutputDev; >; // Define a static object of type ShowData. The output device // selected is "CON" -- the standard output device. ShowData sd1 = "CON"; // Define another static object of type ShowData. The output // is directed to a file called "HELLO.DAT" ShowData sd2 = "hello.dat"; int main()

Другой способ написания этого кода заключается в объявлении ShowData объектов с блоком область, который неявно уничтожает их при выходе из область:

Завершение программы в Python

Однако, там не было объяснения какой метод лучше. Какой метод является наиболее «безаварийным»? И заодно: есть ли в Python понятие Autocloseable объектов? Если я сделаю ранее завершение программы, нужно ли мне будет закрывать файлы и т.д.?

Отслеживать
7,797 13 13 золотых знаков 25 25 серебряных знаков 55 55 бронзовых знаков
задан 17 окт 2015 в 16:11
1,337 4 4 золотых знака 17 17 серебряных знаков 34 34 бронзовых знака
17 окт 2015 в 16:23
Спасибо! Лучшим решением является использование sys.exit()
17 окт 2015 в 16:28
на счет второго: лучше закрывать/завершать все операции перед завершением программы
17 окт 2015 в 16:32

2 ответа 2

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

Короткий ответ:
Лучше использовать sys.exit()

Механизм завершения процесса в Python реализован через бросание исключения SystemExit , таким образом можно просто создать подобное исключение и программа завершится:

raise SystemExit # или даже передать число -- код ошибки завершения программы raise SystemExit(1) 

Функция exit и аналогичная ей quit созданы для удобства работы в интерактивном режиме и их не рекомендуется использовать внутри скриптов:

They are useful for the interactive interpreter shell and should not be used in programs.

По факту они также просто поднимают исключение, и при попытке вызова без скобок напишут подсказку о правильном способе выхода из интерпретатора:

>>> quit Use quit() or Ctrl-D (i.e. EOF) to exit >>> exit Use exit() or Ctrl-D (i.e. EOF) to exit 

Использовать sys.exit стоит потому, что эта функция лежит в стандартном модуле и будет всегда там доступна. Также это довольно явный способ выразить своё желание завершить программу.

Есть также дополнительный метод для немедленного завершения программы: os._exit . У него довольно специфическая область применения, и там же есть замечание:

The standard way to exit is sys.exit(n)

Т.е. здесь даётся подтверждение того, что стандартный способ завершения программы — это вызов sys.exit .

Функция os.abort , упомянутая вами, использует механизм сигналов процессу. Конкретно при вызове этой функции будет передан сигнал SIGABRT , что в linux приведёт к завершению программы и созданию дампа памяти процесса. Подобное завершение рассматривается операционной системой как аварийное, поэтому не стоит использовать его для безаварийного завершения приложения.

По второй части вопроса. В Python есть развитая система контекстных менеджеров: классов, которые умеют работать с оператором with . Самое частое использование этого механизма встречается, вероятно, с файлами.

with open('filename') as my_file: print(my_file.read()) 

Этот код откроет файл, напечатает его содержимое на экран и закроет файл автоматически, даже если возникнет исключение при его печати.

Для классов, которые не приспособлены для работы с with есть функция closing в библиотеке contextlib . Из документации:

with closing(.open()) as f:

is equivalent to this:

f = .open() try: finally: f.close() 

Вот небольшой пример работы этой функции:

import contextlib class Closeable: def close(self): print('closed') with contextlib.closing(Closeable()): pass # печатает closed 

Теперь небольшое отступление о том, почему стоит использовать конструкцию with .

Известно, что программа завершится от любого необработанного исключения, а не только от SystemExit . Таким образом, если в вашем коде используются какие-то ресурсы, которые требуется правильным образом закрывать перед завершением работы, нужно оборачивать работу с ними в блоки try . finally . .

Однако, при использовании конструкции with это оборачивание происходит автоматически, и все ресурсы закрываются корректно.

Так как выход из программы — это всего лишь брошенное исключение, то и в случае использования функции sys.exit закрытие открытых в операторе with ресурсов произойдёт корректно:

with contextlib.closing(Closeable()): sys.exit() # напечатает closed 

Вы можете писать также и свои классы, предоставляющие ресурсы или классы, оборачивающие другие, которые нужно уметь закрывать автоматически. Для этого используются методы __enter__ и __exit__ .

  1. Похожий вопрос с англоязычного StackOverflow
  2. Функции, добавляемые модулем site
  3. Документация по конструкции with
  4. Документация по функции closing
  5. Документация по исключению SystemExit
  6. Документация по функции os._exit
  7. Документация по функции sys.exit
  8. Документация по функции os.abort
  9. Описание системного сигнала SIGABRT

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

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