如何在 Ubuntu 18.04 服务器上启动时以 sudo 身份运行脚本?

Ami*_*Nel 18 scripts 18.04

如何在启动时以 sudo 身份运行脚本?

我需要运行ethtool --offload <net> rx off以禁用烦人的 jme udp 校验和错误消息。

dei*_*mos 28

您可以创建一个 systemd 服务。

创建一个文件/etc/systemd/system/ethtool.service

[Unit]
Description=ethtool script

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

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

和脚本/path/to/yourscript.sh(不要忘记chmod +x它)

#!/bin/bash
ethtool --offload <net> rx off
Run Code Online (Sandbox Code Playgroud)

启用您的服务

systemctl enable ethtool
Run Code Online (Sandbox Code Playgroud)

它将以 root 身份在启动时运行。

  • 如果@deimos 出色的回答有帮助,请接受它:https://askubuntu.com/tour 搜索者会很高兴知道答案按预期工作。 (5认同)
  • `sudo systemctl start ethtool` 立即启动服务。`systemctl status ehttool` 显示状态(运行、启用和日志)。通过“man systemctl”了解更多信息 (2认同)

小智 5

将命令放入 /etc/rc.local 中,或者创建该文件(如果不存在):

 touch /etc/rc.local
 chmod +x /etc/rc.local
Run Code Online (Sandbox Code Playgroud)

所有这些操作都必须以 root 身份完成。

  • 到目前为止,我在最近的文章中几乎到处都读到 systemd 是可行的方法,而 `/etc/rc.local` 将被视为遗留措施。 (2认同)