@happy-cat

Каких прав не хватает скрипту для автозапуска?

Всем привет.
Вопрос понимаю нубский и прежде чем задать его здесь погуглил и здесь в том числе - не работает
Задача, на старом ноуте автоматом запускать данный скрипт
OS Linux Mint 20.2
#!/bin/sh
for cf in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor;
do
echo performance > $cf;
#echo powersave > $cf;
done


ось ругается на то что access denied хотя делал чмод и давал права за пуск - короче по всем мануалам
ЗЫ в консоли он от рута работает без проблем и фунции выполняет - но не работает в автозагрузке
  • Вопрос задан
  • 137 просмотров
Решения вопроса 2
karabanov
@karabanov Куратор тега Linux
Системный администратор
[Unit]
Description=Turn on performance mode for CPU

[Service]
Type=oneshot
User=root
ExecStart=/root/antidropcpu.sh
[Install]
WantedBy=multi-user.target
Ответ написан
Чо мудришь-то?
Всё проще простого!

Обычно, находясь в сессии Пользователя, создаёшь скрипт в /usr/bin/, как и положено, в том же nano (вижу у тебя именно он был), только запускаешь его:
sudo nano /usr/bin/script
без .sh можно и даже нужно, ну, так, чтобы по современному.

В самом скрипте в шапке:
#!/bin/bash

тело скрипта
......
......
......

Сохраняешь: Ctrl+O (заглавная буква О)
Выходишь из nano:
Ctrl+X

Делаешь его исполняемым:
sudo chmod +x /usr/bin/script

Дальше создаёшь юнит в: /etc/systemd/system/ командой:
sudo systemctl edit --force --full script.service

Тело на подобие:
[Unit]
Description=process_description

[Service]
Type=simple
ExecStart=/bin/bash '/usr/bin/script'

[Install]
WantedBy=multi-user.target


Обновляешь systemd, помещаешь его в автозагрузку и стартуешь юнит и всё одной командой:
sudo systemctl daemon-reload; sudo systemctl enable script.service; sudo systemctl start script.service


И вуаля!
Всё арбайтен!

Можно вообще скрипт и юнит с помощью echo сразу создать без nano...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы