Как запустить приложение с флагом
Утилиты командной строки редко можно использовать в готовом виде без дополнительной настройки. Хорошие значения по умолчанию очень важны, однако полезные утилиты должны принимать конфигурацию от пользователей. В большинстве платформ утилиты командной строки принимают флаги для настройки выполнения команд. Флаги — это ограниченные значениями ключей строки, добавляемые после имени команды. Go позволяет настраивать утилиты командной строки, принимающие флаги посредством пакета flag из стандартной библиотеки.
В этом обучающем руководстве мы покажем различные способы использования пакета flag для построения различных видов утилит командной строки. Флаги используются для контроля вывода программы, ввода аргументов позиционирования с сочетанием флагов и других данных, а также для реализации субкоманд.
Использование флага для изменения поведения программы
Использование пакета flag предусматривает три шага. Вначале определяются переменные для сбора значений флагов, затем определяются флаги для использования приложением Go, и в заключение производится проверка синтаксиса флагов, переданных приложению при выполнении. Большинство функций в пакете flag связаны с определением флагов и их привязке к определенным вами переменным. Синтаксическая проверка выполняется функцией Parse().
Создайте новый файл с именем boolean.go :
Добавьте в файл следующий код для создания программы:
В main мы используем функцию flag.Bool для определения флага логического оператора с именем color . Второй параметр этой функции, false , задает значение этого флага по умолчанию, если оно отсутствует. Хотя вы можете ожидать иного, установка значения true не меняет поведения, так как при задании флага оно становится ложным. Поэтому этот параметр почти всегда будет иметь значение false с флагами логических операторов.
Сохраните файл и запустите программу без флагов:
Вывод должен выглядеть так:
Теперь запустите эту программу еще раз с помощью флага -color :
При этом также будет выведен текст, но при этом синим цветом.
Флаги — не единственные значения, которые передаются командам. Также вы можете отправлять имена файлов или другие данные.
Работа с позиционными аргументами
Обычно команды принимают несколько аргументов, которые выступают в качестве субъекта фокуса команды. Например, команда head , которая распечатывает первые строки файла, часто вызывается как head example.txt . Файл example.txt представляет собой позиционный аргумент вызова команды head .
Функция Parse() продолжает выполнять синтаксическую проверку появляющихся флагов, пока не обнаружит аргумент, не являющийся флагом. Пакет flag делает их доступными через функции Args() и Arg() .
В качестве иллюстрации построим упрощенную реализацию команды head , отображающей первые несколько строк указанного файла:
Создайте новый файл head.go и добавьте следующий код:
Вначале мы определяем переменную count , где будет храниться количество строк, которое программа должна считывать из файла. Мы определяем флаг -n , используя flag.IntVar , что отражает поведение первоначальной программы head . Эта функция позволяет нам передать собственный указатель в переменную в отличие от функций flag , у которых нет суффикса Var . Помимо этой разницы остальные параметры flag.IntVar соответствуют параметрам flag.Int : имя флага, значение по умолчанию и описание. Как и в предыдущем примере, мы вызовем flag.Parse() для обработки пользовательских данных.
Следующий раздел выполняет чтение файла. Мы определим переменную io.Reader , для которой будет задан запрошенный пользователем файл или которой будут передаваться стандартные входные данные программы. В выражении if мы используем функцию flag.Arg для доступа к первому аргументу после всех флагов. Если пользователь указал имя файла, оно будет задано. В противном случае, это будет пустая строка ( "" ). Если имя файла имеется в наличии, мы используем функцию os.Open для открытия файла и задаем предварительно определенный для этого файла io.Reader . В противном случае мы используем os.Stdin для считывания стандартных исходных данных.
В заключительном разделе используется *bufio.Scanner , созданный с помощью bufio.NewScanner , для считывания строк из переменной io.Reader in . Мы проводим итерацию до значения count в цикле for и вызываем break , если при сканировании строчки buf.Scan получается значение false , показывающее, что количество строчек меньше, чем запрошенное пользователем.
Запустите эту программу и выведите содержимое записанного файла, используя head.go в качестве аргумента файла:
Разделитель -- представляет собой специальный флаг, который распознается пакетом flag и показывает, что за ним не идут другие аргументы флагов. При запуске этой команды выводится следующее:
Используйте определенный вами флаг -n для изменения объема выводимых данных:
Так выводится только выражение пакета:
Наконец, если программа определяет отсутствие аргументов позиции, она считывает исходные данные из стандартного источника, как и команда head . Попробуйте запустить следующую команду:
Результат должен выглядеть так:
Поведение функций flag , которое мы наблюдали, ограничено исследованием вызова всей команды. Такое поведение требуется не всегда, особенно если вы пишете инструмент командной строки, поддерживающий субкоманды.
Использование FlagSet для реализации субкоманд
В современных приложениях командной строки часто реализуются субкоманды, что позволяет объединить набор инструментов в одной команде. Самый известный инструмент, использующий такую схему, называется git . При проверке такой команды как git init командой является git , а init является субкомандой git . Важная характеристика субкоманд заключается в том, что каждая субкоманда может иметь собственный набор флагов.
Приложения Go могут поддерживать субкоманды с собственным набором флагов, используя оператор типа flag.( *FlagSet) . Для иллюстрации мы создадим программу, которая будет реализовать команду, используя две субкоманды с разными флагами.
Создайте новый файл с именем subcommand.go и добавьте в него следующий код:
Эта программа разделена на несколько частей: функция main , функция root и отдельные функции для реализации субкоманды. Функция main обрабатывает ошибки, возвращаемые командами. Если любая функция возвращает ошибку, выражение if определит ее, распечатает ошибку и закроет программу с кодом состояния 1 , сообщающим операционной системе о возникновении ошибки. Внутри функции main мы передаем все аргументы вызова программы в функцию root . Удалим первый аргумент, представляющий собой имя программы (в предыдущих примерах ./subcommand ), выделив срез os.Args.
Функция root определяет []Runner , где определяются все субкоманды. Runner — это интерфейс субкоманд, позволяющий функции root получить имя субкоманды с помощью Name() и сравнить его с содержанием переменной subcommand . После обнаружения правильной субкоманды посредством итерации переменной cmds мы инициализируем субкоманду с остальными аргументами и вызываем метод Run() для этой команды.
Мы определяем только одну субкоманду, хотя данная структура позволяет легко создавать и другие команды. Экземпляр GreetCommand создается с помощью NewGreetCommand при создани нового *flag.FlagSet с помощью flag.NewFlagSet . flag.NewFlagSet принимает два аргумента: имя набора флагов и стратегию отчета об ошибках проверки синтаксиса. Имя *flag.FlagSet доступно с помощью flag.( *FlagSet). Метод Name. Мы используем этот метод в (*GreetCommand). Name() так, что имя субкоманды соответствует имени, которое мы присвоили *flag.FlagSet . NewGreetCommand также определяет флаг -name аналогично предыдущим примерам, но вместо этого вызывает его как метод поля *flag.FlagSet *GreetCommand , gc.fs . Когда функция root вызывает метод Init() команды *GreetCommand , мы передаем указанные аргументы методу Parse поля *flag.FlagSet .
Субкоманды будет проще увидеть, если вы соберете эту программу и запустите ее. Выполните сборку программы:
Теперь запустите программу без аргументов:
Вы увидите следующий результат:
Теперь запустите команду с субкомандой greet :
Результат будет выглядеть следующим образом:
Теперь используйте флаг -name с greet для указания имени:
Программа выведет следующее:
В этом примере проиллюстрированы некоторые принципы структурирования больших приложений командной строки в Go. Наборы FlagSet разработаны так, чтобы дать разработчикам больше контроля над местом и способом обработки флагов логикой синтаксической проверки флагов.
Заключение
Флаги делают приложения более полезными в разных условиях, поскольку они дают пользователям контроль над способом выполнения программы. Очень важно дать пользователям полезные параметры по умолчанию, но также следует дать им возможностям изменять параметры, которые не подходят для их конкретной ситуации. Вы увидели, что пакет flag предоставляет вашим пользователям гибкие возможности выбора конфигурации. Вы можете выбрать несколько простых флагов или создать разветвленный набор субкоманд. В любом случае, использование пакета flag поможет вам выполнить сборку утилит в стиле длинной истории гибких инструментов командной строки с поддержкой сценариев.
Ознакомьтесь с серией статей по программированию на Go, чтобы узнать больше о языке программирования Go.
При разработке кода на стороне сервера время от времени возникает проблема, которую очень трудно воспроизвести, наблюдаются утечки памяти или скачки процессора, которые вы не можете смоделировать локально, либо необходимо добавлять специальные журналы в приложение. При локальной разработке приложения используется инспектор Node.js для отладки и создания снапшотов памяти/процессора, которые помогут вам найти проблему, но как сделать то же самое в удаленной среде? К счастью, Node.js располагает отличной поддержкой для удаленной отладки, и в этой статье мы рассмотрим, как использовать ее в kubernetes.
Пример приложения
Как включить режим отладки в процессе Node.js?
Конечно, режим отладки по умолчанию не включен для процесса Node.js, поскольку это позволяет выполнить произвольный код на удаленной машине. Есть два способа включить режим отладки в Node.js, используя флаг --inspect , либо посылая процессу сигнал SIGUSR1. Более подробную информацию об этом вы можете найти здесь.
Использование флага -- inspect
Когда вы запускаете процесс Node.js с флагом --inspect , режим отладки включается немедленно:
Теперь вы можете использовать vscode или chrome инспектор для присоединения отладчика к этому процессу:
В приведенном выше примере это конфигурация по умолчанию для присоединения к процессу Node.js:
Важно отметить, что отладчик по умолчанию прослушивает только соединения, приходящие с localhost - он будет отклонять сессии отладки с удаленных адресов. Чтобы обойти это, вам нужно либо разрешить удаленные адреса, используя --inspect=0.0.0.0:9229 , либо создать некий сетевой туннель между удаленным сервером и вашим компьютером; в следующих разделах я покажу, как легко сделать туннель в kubernetes.
Отправка сигнала SIGUSR1 запущенному процессу
Отправка сигнала процессу очень полезна для проведения спонтанной отладки без перезапуска процесса.
Откройте одно окно терминала, чтобы запустить процесс:
Откройте другое окно терминала, чтобы включить режим отладки:
Более подробную информацию об использовании kill для отправки сигналов процессам вы можете найти здесь.
Как проводить отладку в Kubernetes?
Обновление liveness и readiness проб
Во время отладки, если ваш процесс прервется на точке останова, Node.js не сможет ответить на запросы liveness (работоспособности) и readiness (готовности) в kubernetes, и kubernetes решит, что необходимо перезапустить под, завершая вашу сессию отладки. Для предотвращения этого необходимо изменить пробы таким образом, чтобы они допускали более продолжительные остановки процессов:
Уменьшение масштаба (опционально)
Для отладки вам необходимо убедиться, что запрос действительно попадает в тот под, к которому вы подключаетесь. Это может быть непросто, если у вас запущено несколько подов. В примере мы определили 3 реплики в нашем развертывании, а также выполнили автоматическое масштабирование подов с помощью ресурса HorizontalPodAutoscaler. Поэтому нам нужно сообщить kubernetes, чтобы он масштабировал все до 1 пода и сохранил это в таком виде.
Включение отладчика
Поскольку флаг --inspect не должен быть включен при запуске приложений в продакшене, проще сделать это в специальном порядке, отправив ему сигнал USR1, чем создавать новый под. Но сначала вам нужно найти PID вашего приложения Node.js.
Если в вашем образе docker вы запускаете приложение следующим образом:
PID вашего приложения будет равен 1. Чтобы выяснить это точнее, в случае неуверенности, используйте следующие команды:
Затем включаем отладчик, в моем случае я использую PID 1.
Перенаправление портов
Для отладки с локальной машины на удаленный под, мы будем использовать функцию kubernetes port-forward:
После включения этой функции мы можем подключить отладчик Node.js к localhost:9229.
Отладка с помощью VSCode
Теперь вы можете подключить отладчик с помощью vscode. Но проблема в том, что вы не можете устанавливать точки останова, как обычно:
Вопрос заключается в том, что vscode не знает, как сопоставить файлы из контейнера с локальным исходным кодом. Чтобы это осуществить, нам нужно обновить конфигурацию присоединения в файле .vscode/launch.json:
Свойства, которые мы добавили, следующие:
localRoot сообщает vscode, что является корнем проекта на вашем компьютере
remoteRoot сообщает vscode, какой путь в контейнерах соответствует нашему localRoot
sourceMaps сообщает vscode учитывать информацию из исходных кодовых карт, для того, чтобы мы действительно могли осуществлять отладку из файлов с исходными кодами.
После установки этого параметра мы сможем выполнять отладку нормально:
Профилирование процессора и снапшоты памяти
Если вам необходимо сделать отладку по утечке памяти или скачкам ЦП, лучшим инструментом для этого является chrome dev tools “Профилирование ЦП и памяти”. После включения дополнительных возможностей отладки можно легко подключиться с помощью chrome к удаленному процессу и выполнить профилирование. Откройте Chrome и перейдите в chrome: // inspect :
Дополнительную информацию о том, как использовать снапшоты памяти для поиска утечек, вы можете найти здесь.
Заключение
Надеюсь, прочитанное показало вам, насколько мощной является удаленная отладка в Node.js, и какой замечательный набор инструментов существует, чтобы вам в этом помочь. Не так уж часто возникают проблемы, требующие отладки удаленного процесса, но если применять методики, подобные этой, они могут предотвратить массу неприятностей.
Предварительные требования
Создание хранилища Конфигурации приложений
Чтобы создать хранилище Конфигурации приложений, войдите на портал Azure. Выберите Создать ресурс в левом верхнем углу домашней страницы. В поле Поиск в Marketplace введите Конфигурация приложений и нажмите клавишу ВВОД .
В результатах поиска выберите Конфигурация приложений и щелкните Создать.
В области создания Конфигурации приложений введите следующие параметры:
Чтобы проверить параметры, выберите Просмотр и создание.
По завершении развертывания перейдите к ресурсу Конфигурации приложений. Выберите Параметры > Ключи доступа. Запишите первичный ключ строки подключения только для чтения. Она пригодится позже для настройки обмена данными между приложением и созданным хранилищем Конфигурации приложений.
Выберите Диспетчер компонентов > +Добавить, чтобы добавить флаг функции Beta .
Не определяйте label сейчас.
Запустите Visual Studio и выберите Файл > Создать > Проект.
Подключение к хранилищу Конфигурации приложений
Щелкните проект правой кнопкой мыши и выберите Управление пакетами NuGet. На вкладке Обзор найдите и добавьте в проект следующие пакеты NuGet. Если вы не можете их найти, установите флажок Включить предварительные выпуски.
Откройте файл Program.cs и добавьте следующие инструкции:
Создание и запуск приложения локально
Задайте переменную среды с именем ConnectionString для строки подключения к хранилищу службы "Конфигурация приложений". При использовании командной строки Windows выполните следующую команду:
Если вы используете Windows PowerShell, выполните следующую команду:
Перезапустите Visual Studio, чтобы изменение вступило в силу.
Нажмите клавиши CTRL+F5, чтобы скомпилировать и запустить консольное приложение.
Очистка ресурсов
Если вы не планируете в дальнейшем использовать ресурсы, созданные при работе с этой статьей, удалите созданную группу ресурсов, чтобы избежать расходов.
Удаление группы ресурсов — процесс необратимый. Группа ресурсов и все содержащиеся в ней ресурсы удаляются без возможности восстановления. Будьте внимательны, чтобы случайно не удалить не ту группу ресурсов или не те ресурсы. Если ресурсы для работы с этой статьей созданы в группе ресурсов, которая содержит другие нужные ресурсы, удалите каждый ресурс отдельно в соответствующей области ресурса, чтобы не удалять группу ресурсов.
- Войдите на портал Azure и выберите Группы ресурсов.
- Введите имя группы ресурсов в поле Фильтровать по имени.
- В списке результатов выберите имя группы ресурсов, чтобы просмотреть общие сведения.
- Выберите Удалить группу ресурсов.
- Подтвердите операцию удаления группы ресурсов. Введите имя группы ресурсов, которую необходимо удалить, и нажмите Удалить.
Через некоторое время группа ресурсов и все ее ресурсы будут удалены.
Дальнейшие действия
В файле main.go нашего веб-приложения сейчас есть несколько настроек конфигурации которых нельзя менять из вне, и это проблематично.
Содержание статьи
Настройки которые нужно указать в командной строке при запуске веб-приложения:
Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎
Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.
- Сетевой адрес на котором будет работать приложение (сейчас он ":4000" );
- Путь к папки со статическими файлами (сейчас он "./ui/static" ).
В этом уроке мы начнем улучшать данный аспект приложения и реализуем возможность менять IP адрес нашего приложения при её запуске.
В Go, популярным способом управления параметрами конфигурации является использование флагов из командной строки при запуске приложения. Например:
Самый простой способ получить значение флага из командной строки для нашего приложения является следующим:
addr : = flag . String ( "addr" , ":4000" , "Сетевой адрес HTTP" )По сути, данный код определяет новый флаг командной строки с названием addr , значением по умолчанию ":4000" и коротким текстом для справки, объясняющим, что данный флаг в себе содержит. Во время запуска веб-приложения, значение флага будет сохранено в переменной addr .
Добавим поддержку данного флага в нашем приложении и заменим изначально вшитый сетевой адрес на значение флага из командной строки:
// Создаем новый флаг командной строки, значение по умолчанию: ":4000". // Добавляем небольшую справку, объясняющая, что содержит данный флаг. addr : = flag . String ( "addr" , ":4000" , "Сетевой адрес HTTP" ) // Мы вызываем функцию flag.Parse() для извлечения флага из командной строки. // Она считывает значение флага из командной строки и присваивает его содержимое // переменной. Вам нужно вызвать ее *до* использования переменной addr // иначе она всегда будет содержать значение по умолчанию ":4000". // Если есть ошибки во время извлечения данных - приложение будет остановлено. fileServer : = http . FileServer ( http . Dir ( "./ui/static/" ) ) mux . Handle ( "/static/" , http . StripPrefix ( "/static" , fileServer ) ) // Значение, возвращаемое функцией flag.String(), является указателем на значение // из флага, а не самим значением. Нам нужно убрать ссылку на указатель // то есть перед использованием добавьте к нему префикс *. Обратите внимание, что мы используем // функцию log.Printf() для записи логов в журнал работы нашего приложения.Сохраните данный main.go файл и попробуйте использовать флаг -addr при запуске веб-приложения из командной строки. Вы обнаружите, что теперь сервер будет использовать указанный вами сетевой адрес и порт следующим образом:
2021 / 01 / 21 16 : 15 : 12 Запуск сервера на 127.0.0.1 : 9999Значения по умолчанию в командной строке
Флаги командной строки не являются обязательными. К примеру, если вы запустите веб-приложение без флага -addr , сервер будет использовать адрес :4000 (это указанное нами значение по умолчанию).
Нет никаких правил касательно использования значений по умолчанию в качестве флагов командной строки. Многим нравится использовать значения по умолчанию, которые имеют смысл для среды разработки, потому что они экономят время избавляя разработчиков от необходимости каждый раз указывать одни и те же данные. Но все зависит от ситуации. Вместо этого вы можете выбрать более безопасный подход, задав значения по умолчанию для вашей продакшен среды.
Преобразования типов из командной строки
В приведенном выше коде, при определении флага командной строки мы использовали функцию flag.String() . Оно предоставляет преимущество преобразования любого значения из командной строки в тип string. Если значение не может быть преобразовано в string , приложение записывает ошибку в журнал и завершает работу.
В Go, также есть ряд других функций, включая flag.Int() , flag.Bool() и flag.Float64() . Они работают точно так же, как flag.String() , за исключением того, что они автоматически преобразуют значение флага командной строки в соответствующий им тип.
Справка к флагам командной строки
Другой приятной особенностью является то, что вы можете использовать флаг -help для ознакомления со списком доступных флагов командной строки для приложения и небольшой документацией (справки) к ним. Посмотрим на данную возможность в деле:
Мы каждый день пользуемся различными компьютерными программами для выполнения самых разнообразных задач. Некоторые из них имеют большое количество настроек и возможностей, и чтобы всеми ими воспользоваться, нужно совершать множество манипуляций. Например, вы регулярно используете несколько режимов работы приложения, вводите логин и пароль пользователя, применяете специальные режимы. Помимо офисных работников, в таких возможностях очень часто нуждаются любителей компьютерных игр. Все эти манипуляции могут занимать значительное количество усилий и времени, да и попросту раздражать.
Отражение условий старта приложения в ярлыке упрощает работу с программами.
Стоит отметить, что подобная необходимость, о которой было упомянуто выше, возникает крайне редко, и по большей части решается без усилий самими настройками приложений или игры.
Исходя из этого весь вопрос следует рассматривать лишь как дополнительную возможность по расширенному запуску программного обеспечения, потому что целесообразность подобных действий сомнительна, и времени для пользователя они точно не сэкономят.
Операционная система Windows предоставляет каждому пользователю возможность прописать в ярлыке программы параметры запуска. В рамках рассматриваемого вопроса вместо того чтобы переключаться между пунктами меню, можно один раз создать несколько ярлыков с нужными параметрами, расположить их на рабочем столе или панели задач, а в Windows 8 и 10 и на начальном экране, и запускать программу с нужными параметрами одним нажатием кнопки.
Все эти параметры прописываются в ярлыках, которые представляют собой специальные файлы со ссылкой на исполняемый файл. Вам не нужно каждый раз переходить в папку, в которую установлен софт, и искать файл запуска. В этой статье мы рассмотрим, как существенно расширить ваши возможности при работе с программным обеспечением и узнаем, как прописать параметры запуска в командной строке ярлыка на рабочем столе. Всю процедуру мы разделим на два этапа.
Как прописать параметры запуска программы в ярлыке
Этап 1. Выбор исполняемого файла и перенос ярлыка на рабочий стол
Несмотря на то что в подавляющем большинстве случаев при установке софта иконка для запуска помещается на рабочий стол, в некоторых случаях этого не происходит. Тогда вам нужно самостоятельно найти исполняемый файл. Каким образом?
- При установке приложения внимательно следите за тем, какую папку предлагает выбрать установщик. Обычно это C:\Program Files либо C:\Program Files (x86). Большинство разработчиков предоставляет возможность самостоятельно выбрать папку по умолчанию, но, если вы не изменяете предложенный вариант, программа будет установлена именно в указанную папку. зайдите в каталог, куда установлено программное обеспечение и найдите файл запуска. Он имеет расширение exe. Зачастую его название совпадает с названием самого софта. Если же вы не можете определиться, попробуйте выяснить эту информацию на официальном сайте разработчика в разделе справки или в службе технической поддержки.
- Кликните по названию файла правой кнопкой мыши и выберите функцию «Создать ярлык».
- Подтвердите запрос системы «Windows не может создать ярлык в данной папке. Поместить его на рабочий стол?».
Если же вы не помните, в какой папке установлен софт, поступить можно следующим образом:
Если же вы пользуетесь Windows 10, процедура будет несколько отличаться:
- Перейдите на стартовый экран нажатием кнопки Пуск.
- Отыщите в списке всех приложений или на начальном экране иконку запуска программы.
- Кликните правой кнопкой мыши, выберите Дополнительно — Перейти к расположению файла.
- После того как откроется окно Проводника Windows, скопируйте значок на рабочий стол через контекстное меню либо же просто перетянув его в нужное место.
Наконец – самый простой способ. Просто нажмите правую кнопку мыши на нужном файле и, не отпуская, перетащите на рабочий стол. Там отпустите кнопку и появится меню – выберите в нём «Создать ярлыки».
Этап 2. Указание параметров запуска
После того, как мы успешно перенесли значок на рабочий стол, займёмся указанием необходимых параметров в его свойствах. Для этого вам нужно:
- Правой кнопкой мыши кликнуть по иконке и выбрать «Свойства».
- В открывшемся меню перейдите во вкладку «Ярлык» и найдите строку «Объект». Вы увидите, что поле ввода в нём является активным. Именно сюда мы и будем прописывать нужные команды.
- После ввода нужных данных внизу окошка нажмите последовательно Применить — OK.
Параметры записываются в строке «Объект», в самом конце. Их может быть несколько и разделяются они пробелами. Перед каждым параметром ставится «-». Например, для игры Prototype дописывание в конце строки «-windowed» означает, что она сразу запустится в оконном режиме, а не в полноэкранном.
Какие команды прописывать
Разобравшись с тем, как прописывать команды запуска, давайте попробуем выяснить, что именно прописывать. К сожалению, универсальных команд, действующих для абсолютно всех программ, не существует. Поэтому, если вы хотите создавать ярлыки для быстрого запуска с указанными параметрами, вам придётся изучить справку программы либо же обратиться в службу технической поддержки разработчиков.
Очень часто такая информация указана на официальных форумах приложения или игры. Более опытные юзеры или представители разработчиков или правообладателей публикуют там детальную информацию.
Возвращаясь к тому, что было сказано ещё в начале настоящей статьи. Указание параметров получило свою наибольшую актуальность в период массового интереса к игре под названием «Counter-Strike». Почему данный интерес получил подобное распространение именно на «CS» вопрос неоднозначный, кто-то применял это исключительно для развлечения, кто-то (как, например, некоторые профессиональные игроки) для того, чтобы максимальным образом индивидуализировать игровой процесс.
Например, вот список параметров для игры «Counter-Strike: Global Offensive», которые некоторыми пользователями используются при запуске:
Параметр | Значение |
-novid | Отключение вступительного ролика |
-w 640 -h 480 | Установка расширения |
-console | Активация консоли |
-freq 120 | Установление лимита частоты обновления экрана |
-high | Запуск с повышенным приоритетом |
-condebug | Сохранение логов |
-low | Запуск с пониженным приоритетом |
-noaafonts | Отключение сглаживания |
-nosync | Деактивация вертикальной синхронизации |
-fullscreen | Запуск в полноэкранном режиме |
-language English | Установка языка |
Заключение
Насколько приведённый порядок действий целесообразен и актуален сейчас решать каждому за себя, а в комментариях приглашаем вас подискутировать на эту тему, а также рассказать о том, какие программы вы запускаете с указанием параметров запуска. Эти данные могут кому-то пригодиться.
Читайте также: