[Unit]
Description=My Script Service
After=multi-user.target
[Service]
User=user # Имя пользователя, от имени которого будет запускаться команда, указанная в ExecStart
WorkingDirectory=/home/user/program # Директория, в которую будет осуществлён переход перед запуском
ExecStart=/home/user/program/venv/bin/python /home/user/program/webui.py
Restart=always # Всегда перезапускать скрипт при его падениях
[Install]
WantedBy=multi-user.target
/etc/systemd/system
с расширением .service
, например, /etc/systemd/system/my_program.service
.activate
для активации виртуального окружения, но вместо этого указывается полный путь к интерпретатору Python внутри этого виртуального окружения.WorkingDirectory
.Unit
в качестве After
задайте network-online.target
вместо multi-user.target
:After=network-online.target
sudo systemctl daemon-reload
sudo systemctl enable --now my_program.service
x = 5
y = 555
print(f"{x:1}") # "5", минимальная ширина поля вывода переменной x = 1 (вывести значение x, удостоверившись, что оно занимает по меньшей мере один символ)
print(f"{x:3}") # " 5"
print(f"{y:3}") # "555"
# Округление Pi до десятичного значения
pi = 3.141592653589793
print(f"Pi: {pi:.1f}") # Pi: 3.1
x = eval(f"mine_{mines_kolv}[{now_state}]")
тебе нужна индексируемая коллекция! Список или кортеж. Тем более что списки ты уже используешь, значит, знаешь, что это такое. Неужели "список из списков" - это такая сложная концепция?@side-emit="(side, id) => {
this.players[id].side = side;
...
}"
this
, а внутри шаблона он не нужен, т.к. либо раскрывается неявно автоматически, либо, в случае со <script setup>
, не используется вовсе. Следует запомнить: никакого this
в шаблонах. @side-emit="(side, id) => {
players[id].side = side;
...
}"
this
в данном конкретном случае. Просто так совпало.@side-emit="someValue = $event ? 1 : 2"
, а что-то сложнее просто выносить в метод компонента\composition функцию: @side-emit="onSlideEmit"
. git rm —cached ".idea"
git commit -m "Delete .idea"
Файл .gitignore поможет не добавить в репо случайно что-то лишнее. Поэтому мы его создаем в первую очередь, ещё до создания коммитов. Более того, даже если файлы подпадают под правила игнора, это всё равно не запрещает нам их закоммитить при сильном желании. docker docker network create <имя сети>
docker network connect --alias nginx.local <имя сети> container-nginx
docker network connect --alias apache.local <имя сети> container-apache
docker network connect --alias mysite.local <имя сети> container-mysql
Есть сборщик gulpТо что под gulp есть сборщики не делает сам gulp сборщиком. Gulp - task runner, запускалка задач. То есть сборщик под капотом может быть любой, хоть тот же vite.
Что такое глоаблаьные объекты и как они работают?
И что-ли все переменные это прсотос свойства?
let a = {f: 10}
И я почитал про создание перменной без исопльзования клчевых слов let/var/const.
Какая вся картина ооп
export const fetchCountries = createAsyncThunk(
'countries/fetchCountries',
...
(action) => action.type.endsWith("countries/fetchCountries/pending"),
Consistent useEffect timing: React now always synchronously flushes effect functions if the update was triggered during a discrete user input event such as a click or a keydown event.
document
, дальше событие клика по кнопке продолжило всплывать и попало в только что установленный обработчик.При добавлении задержки, данная проблема уходит
document.addEventListener('click', handleOutsideClick, true);
return () => document.removeEventListener('click', handleOutsideClick, true);
a,b
- операция "запятая", её результат равен последнему операнду, то есть b.a>b
и a<b
. Поскольку в b строка, а операции дают true или false, то, соответственно, сравнения не проходят и отрабатывает ветка default.