Как запустить скрипт как sudo во время загрузки на сервере Ubuntu 18.04? [Дубликат]


11

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

Мне нужно запустить, ethtool --offload <net> rx offчтобы отключить раздражающее сообщение об ошибке контрольной суммы jme udp.


почему вы считаете, что вам нужно sudo во время загрузки?
Rinzwind

@Rinzwind, вероятно, потому что для запуска ethtool нужен root. Лучше всего использовать модуль SystemD в качестве пользователя root
Томас Уорд

1
«как sudo» - вы имеете в виду «как root(всесильный пользователь с $UID=0)». sudoэто инструмент, позволяющий обычному пользователю запускать команду как root. "при загрузке" - все, что связано с запуском системы, запускается какroot
waltinator

@waltinator: кроме вещей, которые отбрасывают привилегии; Например, ваша система может запустить X-сервер + пользовательский сеанс для определенного пользователя. Но запускать ethtoolчерез sudo что-то, у кого пропущены привилегии (как предполагает формулировка этого вопроса), было бы действительно плохой идеей, вместо того, чтобы придерживаться этого, /etc/rc.localили каким-либо более «современным» способом заставить все работать как root во время загрузки.
Питер Кордес

Ответы:


15

Вы можете создать сервис systemd.

Создать файл /etc/systemd/system/ethtool.service:

[Unit]
Description=ethtool script

[Service]
ExecStart=/path/to/yourscript.sh

[Install]
WantedBy=multi-user.target

И сценарий /path/to/yourscript.sh(не забудьте об chmod +xэтом)

#!/bin/bash
ethtool --offload <net> rx off

Включить ваш сервис

systemctl enable ethtool

Он будет работать при загрузке с правами root.


4
Если @deimos отличный ответ был полезен, пожалуйста, примите его: askubuntu.com/tour Поисковые пользователи оценят, что ответ работает так, как ожидалось.
chili555

sudo systemctl start ethtoolнемедленно запустить сервис. systemctl status ehttoolдля отображения статуса (работает, включен и журнал). Узнайте больше сman systemctl
Виктор Ламойн

4

Поместите ваши команды в /etc/rc.local или создайте этот файл, если он не существует:

 touch /etc/rc.local
 chmod +x /etc/rc.local

Все эти действия должны быть выполнены как root.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.