CRAFTER - Games Опубликовано 2 мая Поделиться Опубликовано 2 мая (изменено) Привет! У меня есть bash-скрипт fix_caps_lock.sh , которой убирает задержку при выключении клавиши CapsLock: #!bin/sh xkbcomp /etc/myxkbmap $DISPLAY Я данный скрипт я засунул его в /etc/profile.d/, что бы он запускался при запуске системы. После перезагрузки при старте Linux Mint у меня выходит ошибка Are you sure you want to proceed? Я нажимаю на Да и захожу в систему и эта скрипт не запустился т.к проблема с клавишей CapsLock все еще есть, мне приходится вручную в командной строке прописывать команду: xkbcomp /etc/myxkbmap $DISPLAY Что бы исправит проблему. Я даже файлу fix_caps_lock.sh дал права на выполнение через: sudo chmod +x fix_caps_lock.sh Как можно это исправить ? Ошибка при старте системы: Изменено 2 мая пользователем CRAFTER - Games Цитата Ссылка на комментарий
redsn0w Опубликовано 2 мая Поделиться Опубликовано 2 мая 27 минут назад, CRAFTER - Games сказал: Привет! У меня есть bash-скрипт fix_caps_lock.sh , которой убирает задержку при выключении клавиши CapsLock: #!bin/sh xkbcomp /etc/myxkbmap $DISPLAY Я данный скрипт я засунул его в /etc/profile.d/, что бы он запускался при запуске системы. После перезагрузки при старте Linux Mint у меня выходит ошибка Are you sure you want to proceed? Я нажимаю на Да и захожу в систему и эта скрипт не запустился т.к проблема с клавишей CapsLock все еще есть, мне приходится вручную в командной строке прописывать команду: xkbcomp /etc/myxkbmap $DISPLAY Что бы исправит проблему. Я даже файлу fix_caps_lock.sh дал права на выполнение через: sudo chmod +x fix_caps_lock.sh Как можно это исправить ? Ошибка при старте системы: В терминале выполни sudo systemctl edit --force --full script.service Откроется редактор, в него пропиши [Unit] Description=My Script Service After=multi-user.target [Service] Type=idle ExecStart=ТУТ ПУТЬ ДО СКРИПТА [Install] WantedBy=multi-user.target В строке "ExecStart" укажи путь до скрипта Сохрани Далее sudo systemctl enable script Если получишь ошибку то выполни sudo systemctl daemon-reload Перезагрузись и проверяй Цитата Ссылка на комментарий
CRAFTER - Games Опубликовано 2 мая Автор Поделиться Опубликовано 2 мая @redsn0w Я ввел: [Unit] Description=My Script Service After=multi-user.target [Service] Type=idle ExecStart=/etc/fix_caps_lock.sh [Install] WantedBy=multi-user.target fix_caps_lock.sh - исполняемый файл. Далее sudo systemctl daemon-reload Но после перезагрузки системы скрипт не был запущен об этом говорит, ошибка клавиши CapsLock. При этом если я просто опять же в консоль запущу команду xkbcomp /etc/myxkbmap $DISPLAY То ошибка пропадает. Есть другие способы засунуть в автозапуск скрипт ? Цитата Ссылка на комментарий
redsn0w Опубликовано 2 мая Поделиться Опубликовано 2 мая Выполни все снова и в самом конце, после : sudo systemctl daemon-reload Выполни еще sudo systemctl enable mysrcipt И перезагрузка. Цитата Ссылка на комментарий
CRAFTER - Games Опубликовано 2 мая Автор Поделиться Опубликовано 2 мая @redsn0w Мне пишет ошибку: sudo systemctl enable mysrcipt Failed to enable unit: Unit file mysrcipt.service does not exist. Это значит у меня путь не правильный ? Хотя путь у меня правильный, может скрипт нужно сюда засунуть /etc/systemd/system/ ? Цитата Ссылка на комментарий
redsn0w Опубликовано 2 мая Поделиться Опубликовано 2 мая 9 минут назад, CRAFTER - Games сказал: @redsn0w Мне пишет ошибку: sudo systemctl enable mysrcipt Failed to enable unit: Unit file mysrcipt.service does not exist. Это значит у меня путь не правильный ? Хотя путь у меня правильный, может скрипт нужно сюда засунуть /etc/systemd/system/ ? Ты все это повторил? 3 часа назад, redsn0w сказал: В терминале выполни sudo systemctl edit --force --full script.service Откроется редактор, в него пропиши [Unit] Description=My Script Service After=multi-user.target [Service] Type=idle ExecStart=ТУТ ПУТЬ ДО СКРИПТА [Install] WantedBy=multi-user.target В строке "ExecStart" укажи путь до скрипта Сохрани Далее sudo systemctl enable script Если получишь ошибку то выполни sudo systemctl daemon-reload Перезагрузись и проверяй ? Цитата Ссылка на комментарий
CRAFTER - Games Опубликовано 2 мая Автор Поделиться Опубликовано 2 мая @redsn0w Ну я выполнил сперва: sudo systemctl edit --force --full script.service И там уже есть строка [Unit] Description=My Script Service After=multi-user.target [Service] Type=idle ExecStart=/etc/fix_caps_lock.sh [Install] WantedBy=multi-user.target Далее я ввел: sudo systemctl daemon-reload и sudo systemctl enable mysrcipt Но в последней команде опять: $ sudo systemctl enable mysrcipt Failed to enable unit: Unit file mysrcipt.service does not exist. Цитата Ссылка на комментарий
CRAFTER - Games Опубликовано 4 мая Автор Поделиться Опубликовано 4 мая @redsn0w Привет! Смотрите почему эта команда xkbcomp /etc/myxkbmap $DISPLAY Если ее ввести в командной строке работает, но при этом там есть конечно предупреждения: Warning: No symbols defined for <AB11> (keycode 97) Warning: No symbols defined for <JPCM> (keycode 103) Warning: No symbols defined for <I120> (keycode 120) Warning: No symbols defined for <AE13> (keycode 132) Warning: No symbols defined for <I149> (keycode 149) Warning: No symbols defined for <I154> (keycode 154) Warning: No symbols defined for <I168> (keycode 168) Warning: No symbols defined for <I178> (keycode 178) Warning: No symbols defined for <I183> (keycode 183) Warning: No symbols defined for <I184> (keycode 184) Warning: No symbols defined for <FK19> (keycode 197) Warning: No symbols defined for <FK24> (keycode 202) Warning: No symbols defined for <I217> (keycode 217) Warning: No symbols defined for <I219> (keycode 219) Warning: No symbols defined for <I222> (keycode 222) Warning: No symbols defined for <I230> (keycode 230) Warning: No symbols defined for <I248> (keycode 248) Но это не важно ведь команда работает, но когда я делаю bash-скрипт: #!bin/bash xkbcomp /etc/myxkbmap $DISPLAY И запускаю его то он не работает. Цитата Ссылка на комментарий
Ильдар Опубликовано 6 мая Поделиться Опубликовано 6 мая Запустить bash скрипт как systemd сервис В Linux вы можете запустить bash скрипт как сервис через systemd (вместо использования планировщика cron). Таким образом вы можете обеспечить постоянный запуск скрипта, запускать скрипт при загрузке Linux, контролировать его состояние и использовать другие преимущества systemd. Создайте файл со скриптом: $ mcedit /usr/local/bin/myscript.sh #!/bin/bash while true do //ваш код sleep 10 done Разрешите запуск скрипта: $ chmod +x /usr/local/bin/myscript.sh Создайте юнит файл: $ sudo mcedit /etc/systemd/system/myscript.service [Unit] Description=Test Bash Script in Systemd After=network.target [Service] Type=simple ExecStart=/usr/local/bin/myscript.sh [Install] WantedBy=multi-user.target Если скрипт взаимодействует с сетью, его нужно запускать после инициализации сети. Это обеспечивается опцией After=network.target. В секции [Service] можно дополнительно добавить различные опции: Type — определяет тип сервиса. По умолчанию используется simple. Тип oneshot значит, что сервис должен выполнить разовую задачу и завершиться; ExecStop – задать команду, которая нужно выполнить при остановке сервиса; RemainAfterExit=true указывает, что systemd будет считать сервис активным, несмотря на то, что процесс завершился. Обновите конфигурацию systemd: $ systemctl daemon-reload Добавьте сервис в автозагрузку и запустите его: $ systemctl enable myscript.service $ systemctl start myscript.service Проверьте что сервис запущен: $ systemctl status myscript.service Цитата Ссылка на комментарий
Ильдар Опубликовано 6 мая Поделиться Опубликовано 6 мая обратите внимание на этот момент: Создайте юнит файл: $ sudo mcedit /etc/systemd/system/myscript.service Цитата Ссылка на комментарий
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.