ฉันจะเรียกใช้สคริปต์เป็น sudo ตอนบู๊ตบน Ubuntu 18.04 Server ได้อย่างไร [ซ้ำ]


11

ฉันจะเรียกใช้สคริปต์เป็น sudo ตอนบูตได้อย่างไร

ฉันจำเป็นต้องเรียกใช้ethtool --offload <net> rx offเพื่อปิดใช้งานข้อความแสดงข้อผิดพลาด jme udp checksum ที่น่ารำคาญ


ทำไมคุณถึงเชื่อว่าคุณต้องใช้ sudo ตอนบูต?
Rinzwind

@Rinzwind อาจเป็นเพราะ ethtool ต้องการรูทเพื่อให้ทำงาน หน่วย SystemD ในฐานะรูทเป็นวิธีที่ดีที่สุด
โธมัสวอร์ด

1
"as sudo" - คุณหมายถึง "as root(ผู้ใช้ที่ทรงพลังทั้งหมดด้วย$UID=0)" เป็นเครื่องมือสำหรับช่วยให้ผู้ใช้งานทั่วไปที่จะเรียกใช้คำสั่งเป็นsudo root"at boot" - ทุกอย่างที่เกี่ยวข้องกับการเริ่มต้นระบบทำงานเป็นroot
waltinator

@altinator: ยกเว้นสิ่งที่ปล่อยสิทธิ์ เช่นคุณสามารถให้ระบบเริ่มต้นเซิร์ฟเวอร์ X + เซสชันผู้ใช้สำหรับผู้ใช้บางราย แต่การทำงานethtoolผ่าน sudo จากสิ่งที่มีการลดสิทธิพิเศษ (เช่นถ้อยคำของคำถามนี้แนะนำ) จะเป็นความคิดที่ไม่ดีจริง ๆ เมื่อเทียบกับการยึดไว้ใน/etc/rc.localหรือวิธีการ "ทันสมัย" เพื่อให้สิ่งต่างๆ
Peter Cordes

คำตอบ:


16

คุณสามารถสร้างบริการ 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

มันจะทำงานในการบูตในฐานะรูท


4
หาก @deimos คำตอบที่ยอดเยี่ยมมีประโยชน์โปรดยอมรับ: askubuntu.com/tourผู้ค้นหาจะขอบคุณที่รู้ว่าคำตอบนั้นใช้งานได้ตามที่คาดไว้
chili555

sudo systemctl start ethtoolเพื่อเริ่มบริการทันที systemctl status ehttoolเพื่อแสดงสถานะ (เรียกใช้เปิดใช้งานและบันทึก) เรียนรู้เพิ่มเติมด้วยman systemctl
Victor Lamoine

4

วางคำสั่งของคุณใน /etc/rc.local หรือสร้างไฟล์นั้นหากไม่มีอยู่:

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

การกระทำทั้งหมดเหล่านี้จะต้องทำในฐานะที่เป็นราก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.