Skip to content

Command line arguments uk UA

ArchiBot edited this page Jun 14, 2025 · 57 revisions

Аргументи командного рядка

ASF включає підтримку декількох аргументів командного рядка, які можуть вплинути на виконання програми. Вони можуть бути використані досвідченими користувачами для того, щоб вказати, як повинна працювати програма. На відміну від конфігураційного файлу за замовчуванням ASF.json, аргументи командного рядка використовуються для ініціалізації ядра (наприклад, --path), специфічних для платформи налаштувань (наприклад, --system-required) або конфіденційних даних (наприклад, --cryptkey).


Використання

Використання залежить від вашої операційної системи та смаку ASF.

Загальні:

dotnet ArchiSteamFarm.dll --argument --otherOne

Windows:

.\ArchiSteamFarm.exe --argument --otherOne

Linux/macOS:

./ArchiSteamFarm --argument --otherOne

Аргументи командного рядка також підтримуються у загальних допоміжних скриптах, таких як ArchiSteamFarm.cmd або ArchiSteamFarm.sh. Крім того, ви також можете використовувати властивість середовища ASF_ARGS, як описано у розділах management та docker.

Якщо ваш аргумент містить пробіли, не забудьте взяти його в лапки. Обидва помиляються:

./ArchiSteamFarm --path /home/archi/My Downloads/ASF # Bad!
./ArchiSteamFarm --path=/home/archi/My Downloads/ASF # Bad!

Втім, з цими двома все гаразд:

./ArchiSteamFarm --path "/home/archi/My Downloads/ASF" # OK
./ArchiSteamFarm "--path=/home/archi/My Downloads/ASF" # OK

Аргументи

--cryptkey <key> або --cryptkey=<key> - запустить ASF з власним криптографічним ключем зі значенням <key>. Цей параметр впливає на безпеку і призведе до того, що ASF використовуватиме наданий вами ключ <key> замість стандартного, жорстко закодованого у виконуваному файлі. Оскільки ця властивість впливає на ключ шифрування за замовчуванням (для шифрування), а також на сіль (для хешування), майте на увазі, що все зашифроване/хешоване за допомогою цього ключа вимагатиме його передачі під час кожного запуску ASF.

Немає вимог до довжини або символів <key>, але з міркувань безпеки ми рекомендуємо вибирати достатньо довгу парольну фразу, що складається, наприклад, з випадкових 32 символів, наприклад, за допомогою команди tr -dc A-Za-z0-9 < /dev/urandom | head -c 32; echo у Linux.

Приємно відзначити, що є також два інших способи надання цієї інформації: --cryptkey-file та --input-cryptkey.

Через природу цієї властивості також можна встановити криптографічний ключ, оголосивши змінну оточення ASF_CRYPTKEY, що може бути більш доречним для людей, які бажають уникнути чутливих деталей у аргументах процесу.


--cryptkey-file <path> або --cryptkey-file=<path> - запустить ASF з власним криптографічним ключем, прочитаним з файлу <path>. Ця властивість слугує тій самій меті, що і --криптоключ <key>, описаний вище, тільки механізм відрізняється, оскільки ця властивість буде зчитувати <key> з наданого <path> замість цього. Якщо ви використовуєте це разом з --path, зверніть увагу на те, що відносний шлях буде різним залежно від порядку аргументів, тобто від того, чи ви вказуєте --path перед --cryptkey-file, чи після нього.

Через природу цієї властивості також можна встановити файл криптографічного ключа, оголосивши змінну оточення ASF_CRYPTKEY_FILE, що може бути більш доречним для людей, які хочуть уникнути чутливих деталей в аргументах процесу.


--ignore-unsupported-environment - змусить ASF ігнорувати проблеми, пов'язані з роботою у непідтримуваному середовищі, що зазвичай сигналізується помилкою і примусовим виходом. Непідтримувані середовища включають, наприклад, запуск збірки для win-x64 ОС на linux-x64. Хоча цей прапорець дозволить ASF спробувати запустити такі сценарії, зауважте, що ми не підтримуємо їх офіційно, і ви змушуєте ASF робити це повністю на свій страх і ризик. Важливо зазначити, що усі сценарії непідтримуваного середовища можна виправити. Ми наполегливо рекомендуємо виправити невирішені проблеми замість того, щоб декларувати цей аргумент.


--input-cryptkey - змусить ASF запитати про --cryptkey під час запуску. Ця опція може бути корисною для вас, якщо замість того, щоб надавати криптографічний ключ у змінних оточення або файлі, ви бажаєте не зберігати його ніде, а вводити вручну під час кожного запуску ASF.


--minimized - змусить вікно консолі ASF згорнутися одразу після запуску. Корисний переважно у сценаріях автоматичного запуску, але може використовуватися і поза ними. Ця опція потребує відповідної підтримки середовища - вона може не працювати належним чином в усіх можливих сценаріях.


--мережева група <group> або --мережева група=<group> - змусить ASF ініціювати свої обмежувачі з користувацькою мережевою групою зі значенням <group>. Цей параметр впливає на запуск ASF у кількох екземплярах, сигналізуючи, що даний екземпляр є залежним лише від екземплярів, що належать до тієї самої мережевої групи, і незалежним від решти екземплярів. Зазвичай ви хочете використовувати цю властивість лише тоді, коли ви маршрутизуєте запити ASF за допомогою спеціального механізму (наприклад, через різні IP-адреси) і хочете встановити мережеві групи самостійно, не покладаючись на те, що ASF зробить це автоматично (що наразі передбачає врахування лише WebProxy). Майте на увазі, що при використанні користувацької мережевої групи це унікальний ідентифікатор на локальній машині, і ASF не братиме до уваги інші деталі, такі як значення WebProxy, що дозволить вам, наприклад, запустити два екземпляри з різними значеннями WebProxy, які все одно залежатимуть один від одного.

Через природу цієї властивості також можна встановити значення, оголосивши змінну оточення ASF_NETWORK_GROUP, що може бути більш доречним для людей, які бажають уникнути чутливих деталей в аргументах процесу.


--no-config-migrate - за замовчуванням ASF автоматично перенесе ваші файли конфігурації до останнього синтаксису. Перенесення включає перетворення застарілих властивостей на актуальні, видалення властивостей зі значеннями за замовчуванням (оскільки вони не мають жодного ефекту), а також очищення файлу в цілому (виправлення відступів тощо). Це майже завжди хороша ідея, але у вас може виникнути особлива ситуація, коли ви хочете, щоб ASF ніколи не перезаписував конфігураційні файли автоматично. Наприклад, ви можете захотіти chmod 400 ваші конфігураційні файли (дозвіл на читання лише для власника) або накласти на них chattr +i, в результаті чого буде заборонено доступ на запис для всіх, наприклад, як захід безпеки. Зазвичай ми рекомендуємо залишати перенесення конфігурації увімкненим, але якщо у вас є особлива причина для її вимкнення і ви бажаєте, щоб ASF не робив цього, ви можете скористатися цим перемикачем для досягнення цієї мети. Майте на увазі, що для ASF наявні правильні налаштування стануть відтепер на вашу відповідальність, особливо у відношенні до застарілих та належить до властивостей у майбутніх версіях ASF.


--no-config-watch - за замовчуванням ASF встановлює FileSystemWatcher над вашим каталогом config для прослуховування подій, пов'язаних зі змінами файлів, щоб він міг інтерактивно адаптуватися до них. Наприклад, це включає зупинку ботів при видаленні конфігурації, перезапуск бота при зміні конфігурації або завантаження ключів до BGR після того, як ви скинули їх до каталогу config. Цей перемикач дозволяє вимкнути таку поведінку, що призведе до повного ігнорування ASF усіх змін у каталозі config, вимагаючи від вас виконання таких дій вручну, якщо ви вважатимете за потрібне (що зазвичай означає перезапуск процесу). Ми рекомендуємо залишати події конфігурації увімкненими, але якщо у вас є особлива причина для їх вимкнення і ви бажаєте, щоб ASF не робив цього, ви можете скористатися цим перемикачем для досягнення цієї мети.


--no-restart - цей параметр використовується для контейнерів docker і примусово задає параметру AutoRestart значення false. Якщо у вас немає особливої потреби, ви можете налаштувати властивість AutoRestart безпосередньо у вашому конфігураторі. Цей перемикач тут, щоб наш докер-скрипт не торкався вашого глобального конфігуратора, щоб адаптувати його до свого середовища. Звичайно, якщо ви запускаєте ASF всередині скрипта, ви також можете використовувати цей перемикач (в іншому випадку краще скористатися глобальною властивістю config).


--no-steam-parental-generation - за замовчуванням ASF автоматично намагатиметься згенерувати батьківські PIN-коди Steam, як описано у властивості конфігурації SteamParentalCode. Однак, оскільки це може вимагати надмірної кількості ресурсів ОС, цей перемикач дозволяє вимкнути таку поведінку, що призведе до того, що ASF пропустить автогенерацію і одразу запитає у користувача PIN-код, що зазвичай трапляється лише у випадку невдалої автогенерації. Зазвичай ми рекомендуємо залишати генерацію увімкненою, але якщо у вас є особлива причина для її вимкнення і ви хочете, щоб ASF не робив цього, ви можете скористатися цим перемикачем для досягнення цієї мети.


--path <path> або --path=<path> - ASF завжди переходить до власного каталогу під час запуску. Якщо вказати цей аргумент, ASF після ініціалізації перейде до вказаної директорії, що дозволяє використовувати власні шляхи для різних частин програми (включаючи директорії config, logs, plugins і www, а також файл NLog.config), без необхідності дублювати двійкові файли у тому ж місці. Це може бути особливо корисно, якщо ви хочете відокремити бінарний файл від фактичного конфігуратора, як це робиться в Linux подібних пакунках - таким чином ви можете використовувати один (актуальний) бінарний файл з декількома різними налаштуваннями. Шлях може бути як відносним відповідно до поточного місця бінарного ASF, так і абсолютним. Майте на увазі, що ця команда вказує на новий «ASF home» - каталог, який має таку саму структуру, як і початковий ASF, з каталогом config всередині, див. приклад нижче для пояснення.

Через природу цієї властивості також можна задати очікуваний шлях, оголосивши змінну оточення ASF_PATH, що може бути більш доречним для людей, які хочуть уникнути чутливих деталей в аргументах процесу.

Якщо ви плануєте використовувати цей аргумент командного рядка для запуску декількох екземплярів ASF, рекомендуємо прочитати нашу сторінку керування про цей спосіб.

Приклади:

dotnet /opt/ASF/ArchiSteamFarm.dll --path /opt/TargetDirectory # Absolute path
dotnet /opt/ASF/ArchiSteamFarm.dll --path ../TargetDirectory # Relative path works as well
ASF_PATH=/opt/TargetDirectory dotnet /opt/ASF/ArchiSteamFarm.dll # Same as env variable
├── 📁 /opt
│     ├── 📁 ASF
│     │     ├── ⚙️ ArchiSteamFarm.dll
│     │     └── ...
│     └── 📁 TargetDirectory
│           ├── 📁 config
│           ├── 📁 logs (generated)
│           ├── 📁 plugins (optional)
│           ├── 📁 www (optional)
│           ├── 📄 log.txt (generated)
│           └── 📄 NLog.config (optional)
└── ...

--service - цей перемикач переважно використовується нашою службою systemd і змушує Headless з true. Якщо у вас немає особливої потреби, ви можете налаштувати властивість Headless безпосередньо у вашому конфігураторі. Цей перемикач тут для того, щоб нашій службі systemd не потрібно було торкатися вашого глобального конфігуратора, щоб адаптувати його до свого оточення. Звісно, якщо у вас є подібна потреба, ви також можете скористатися цим перемикачем (якщо ні, то краще скористайтеся властивістю global config).


--system-required - оголошення цього перемикача призведе до того, що ASF спробує повідомити ОС про те, що процес вимагає, щоб система працювала протягом усього часу його існування. Наразі цей перемикач діє лише на комп'ютерах з Windows, де він забороняє системі переходити у сплячий режим доти, доки виконується процес. Це може виявитися особливо корисним, якщо ви працюєте на комп'ютері або ноутбуці вночі, оскільки ASF не дасть вашій системі заснути під час роботи.

Clone this wiki locally