Ändern Sie den Linux-Dienst so, dass er beim Booten im Namespace startet, anstatt nur normal zu starten

2

Kann eine Anwendung angewiesen werden, beim Booten in einem Netzwerk-Namespace zu starten, anstatt nur normal zu starten? Ich verwende einen Transmission-Daemon auf Ubuntu 14.04 LTS. Es bootet beim Start, was großartig ist, ich brauche es nur, um in einem Namespace zu starten. Ich habe meinen Namespace mit Pre-Up in der Datei / etc / network / interfaces erstellt. Es scheint, als wäre der effizienteste Weg, einfach zu ändern, was den Dienst bereits dazu bringt, beim Booten zu starten, aber ich könnte mich irren.

David Custer
quelle
David: Speziell ein Netzwerk- Namespace? Unter Linux gibt es sechs verschiedene Arten von Namespaces.
Grawity
@ Karan: Auf der Grundlage früherer Fragen errate ich diese Art von Namespaces, in denen bestimmte Prozesse unterschiedliche Netzwerkschnittstellen oder unterschiedliche Prozessbäume oder dergleichen sehen können.
Grawity
@grawity @Karan Ich hätte viel genauer sein sollen, reine Faulheit. Ich werde meine Frage aktualisieren. Netzwerk-Namespace. ip netns exec vpn service transmission-daemon start. Ich denke, ich könnte das einfach beim Booten laufen lassen, aber das scheint eine sehr unangenehme Art zu sein. Um zu erwähnen, müsste ich sicherstellen, dass es ausgeführt wird, nachdem der Namespace erstellt wurde. Aus diesem Grund habe ich mich gefragt, ob es eine Möglichkeit gibt, dies zu tun, indem ich nur ändere, was den Start beim Start bereits veranlasst hat.
David Custer

Antworten:

0

Der "Start beim Booten" Teil:

Schreiben Sie eine Upstart-Dienstkonfiguration und fügen Sie sie ein /etc/init. Das Kochbuch enthält Beispiele. Alternativ können Sie das vorhandene ändern, transmission.conffalls vorhanden.

Für zukünftige Ubuntu-Versionen (15.04 und höher) müssen Sie jedoch systemd verwenden. Schreiben Sie ein transmission.serviceund legen Sie es in /etc/systemd/system.

Der Teil "… in einem Netz":

Beim Überprüfen des Upstart-Kochbuchs gibt es keine verwandten Einstellungen (abgesehen von einer einfachen Chroot). Die meisten vorhandenen Upstart-Init-Skripte sind für solche Aufgaben in der Tat immer noch auf externe Tools angewiesen ip netns.

Gleiches gilt derzeit für systemd. Während es JoinsNamespaceOf = hat , können Sie nur eine andere Service-Einheit und noch keinen benannten Namespace angeben.

Grawity
quelle
Gut $% ^ & ich. LOL. Vielen Dank für die Beantwortung meiner Frage. Ich werde wohl nur versuchen, das zu ändern original transmission-daemon.conf. : D
David Custer
Ich hätte in diesem Fall auch auf upstart.ubuntu.com/cookbook/#override-files verlinken sollen .
Grawity
Bitte geben Sie das Service-Skript an. Weil es nicht so einfach ist, wie Sie hier schreiben. Weil der Dienst die Übertragung mit seinem eigenen Benutzer startet (der übrigens keinen Zugang zu Netzen hat).
Jurten