Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Как сделать автозапуск скрипта при старте системы?  (Прочитано 1052 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Makhnowski

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Всех приветствую.
Имеется скрипт по пути:
/home/elijah/Zapret/Zapret_ON.shХотелось бы, чтобы он запускался со стартом системы (Ubuntu 22.04.4 LTS)
Что я сделал:
Создал ранее отсутствующий файл сервиса rc-local.service
sudo nano /etc/systemd/system/rc-local.serviceС содержимым:
[Unit]
Description=/etc/rc.local
ConditionPathExists=/etc/rc.local
 
[Service]
Type=idle
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
 
[Install]
WantedBy=multi-user.target
Дал ему права на выполнение (не уверен что это правильно, но на всякий случай):
sudo chmod +x /etc/systemd/system/rc-local.serviceДобавил сервис в автозапуск (не уверен что это правильно, но на всякий случай):
sudo systemctl enable rc-local.serviceЗапустил сервис (не уверен что это правильно, но на всякий случай):
sudo systemctl start rc-local.serviceСоздал ранее отсутствующий файл rc.local
sudo nano /etc/rc.localЗаписал в него следующее содержимое:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
 
/home/elijah/Zapret/Zapret_ON.sh
 
exit 0
Дал ему права на выполнение:
sudo chmod +x /etc/rc.localДобавил сервис в автозапуск:
sudo systemctl enable rc-localЗапустил сервис:
sudo systemctl start rc-localСмотрю состояние сервиса:
sudo systemctl status rc-localНа что выдало ошибку:
× rc-local.service - /etc/rc.local
     Loaded: loaded (/etc/systemd/system/rc-local.service; enabled; vendor pres>
    Drop-In: /usr/lib/systemd/system/rc-local.service.d
             └─debian.conf
     Active: failed (Result: exit-code) since Sun 2024-09-08 23:52:43 +05; 7min>
    Process: 1028 ExecStart=/etc/rc.local start (code=exited, status=126)
   Main PID: 1028 (code=exited, status=126)
        CPU: 5ms

сен 08 23:52:38 X200LA systemd[1]: Started /etc/rc.local.
сен 08 23:52:43 X200LA rc.local[1092]: /etc/rc.local: 14: /home/elijah/Zapret/Zapret_ON.sh: Permission denied
сен 08 23:52:43 X200LA systemd[1]: rc-local.service: Main process exited, code=exited, status=126/n/a
сен 08 23:52:43 X200LA systemd[1]: rc-local.service: Failed with result 'exit-code'.
~
lines 1-13/13 (END)
Что я делаю не так?
« Последнее редактирование: 08 Сентября 2024, 22:14:09 от Makhnowski »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7525
  • Luck Tales
    • Просмотр профиля
chmod +x /home/elijah/Zapret/Zapret_ON.sh
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Makhnowski

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Точно же, права не выдал. Спасибо! Теперь работает!

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7525
  • Luck Tales
    • Просмотр профиля
Ну если уж сосвем хорошо делать - прослойка /etc/rc.local абсолютно не нужна  8)
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Makhnowski

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
То-есть можно сразу прописать в rc-local.service?
Вида:
ExecStart=/home/elijah/Zapret/Zapret_ON.sh start

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7525
  • Luck Tales
    • Просмотр профиля
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Makhnowski

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Почитал. Да, делаю лишние движения, которые стоит сократить. Опять же, спасибо за подсказку.

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3207
    • Просмотр профиля
А почему не поместить desktop-файл в /etc/xdg/autostart?
Пётр.

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 7607
    • Просмотр профиля
"Не мудри без меры - перемудришь."

Peter_I, совершенно верно. Но ведь надо намудрить такого, чтобы сам ничего не понял.
Цитировать
/home/elijah/Zapret/Zapret_ON.sh
Тут даже не в /etc, а в /home/elijah.

Оффлайн Makhnowski

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Ну, собственно, потому и тема в разделе для новичков. Это вы еще не видели на каких костылях остальная система живет. Без валерьянки не взглянешь.

Оффлайн AlexDem

  • Активист
  • *
  • Сообщений: 708
    • Просмотр профиля
почему не поместить desktop-файл в /etc/xdg/autostart?
А потому, что надо понимать, что находится в /home/elijah/Zapret/Zapret_ON.sh
Если там скрипт, который запускается, выполняется и закрывается, тогда да, а если там скрипт, который должен висеть в памяти как сервис постоянно и выполнять какую то работу по мониторингу (ну например следить за какой то папкой с файлами на предмет появления в ней новых), тогда через systemd.

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3207
    • Просмотр профиля
так это называется демон. Я бы демон сделал на C.
Пётр.

 

Страница сгенерирована за 0.091 секунд. Запросов: 25.