lxfr
@lxfr

Как делается правильная автозагрузка в Ubuntu от имени пользователя?

Приветствую!

Подскажите, допустим есть свежая система Ubuntu и некий user с правами обычного пользователя.
Как правильно сделать автозагрузку неких bash скриптов от его имени при старте системы?
Чтобы если, к примеру, сервер перезагрузился, оно все запустилось, даже если user сам в систему не заходил еще.
Там в скриптах запускается некий софт на яве в режиме демона и слушает некоторые порты, сам софт распологается в каталоге [~] user-a, но это не суть важно.

Docker не предлагайте пожалуйста в качестве решения этого вопроса.
  • Вопрос задан
  • 2022 просмотра
Решения вопроса 1
Zoominger
@Zoominger
System Integrator
Как правильно сделать автозагрузку неких bash скриптов от его имени при старте системы?

Вот так можно запустить скрипт от имени другого пользователя:
sudo -u username /path/to/your/script.sh
Только в файл /etc/sudoers добавьте строку, а то пароль будет просить:
username ALL=(ALL) NOPASSWD: ALL
username - нужный пользователь.

Для запуска скрипта при загрузке добавьте его в cron:
sudo crontab -eu root
@reboot /bin/sudo -u username /path/to/your/script.sh
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@pfg21
ex-турист
в убунту стоит systemd - управление процессами системы.
пишешь юнит для системы управления на запуск твоей проги от имени нужного пользователя. к примеру
/etc/systemd/system/3proxy.proxy.service
[Unit]
Description=Simple proxy (3proxy) service
After=network.target

[Service]
User=nobody
Group=nogroup
ExecStart=/usr/bin/proxy -l/var/log/1pfg/3proxy.log -4 -p10021

[Install]
WantedBy=multi-user.target

далее перечитываешь юниты
sudo systemctl daemon-reload
включаешь юнит в автозагрузку
sudo systemctl enable 3proxy.proxy.service
и запускаешь если нужен прям сейчас
sudo systemctl start 3proxy.proxy.service
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы