Ich möchte ein Bash-Skript ausführen wie:
#!/bin/bash
echo 'cpu limit bomi player at 40%'
cpulimit -v -e bomi -l 40
Nur 20 Sekunden nach der Anmeldung bei meinem Benutzer. Können Sie mir bitte dabei helfen? Ich habe Google durchsucht und getan, was sie gesagt haben, aber es hat bei mir nicht funktioniert.
Wenn das Bash-Skript in einem neuen Terminalfenster ausgeführt werden kann, in dem die Ausgabe angezeigt wird, teilen Sie mir bitte mit, was ich tun muss, um dies zu erreichen.
sleep
mit ändernsu -c user '<command>'
.Antworten:
Eine einfache Möglichkeit, dies zu tun, besteht darin, diese Zeilen zu rc.local in Ihrem System hinzuzufügen.
Dafür benötigen Sie Root- oder Sudo-Rechte. Sie können die Datei mit Ihrem bevorzugten Texteditor bearbeiten, z. B. vim :
vim /etc/rc.local
Die erste Zeile weist den Computer an, 20 Sekunden zu warten, die anderen 2 Zeilen stammen aus Ihrem Skript und die letzte Zeile
&
weist den Computer an, diese in einer Sub-Shell auszuführen, damit Ihr Computer nicht auf das Ende der Funktion wartet und fortfährt mit boot.Sie sollten diese Zeilen an einer beliebigen Stelle vor dem
exit 0
Aufruf am Ende dieses Skripts hinzufügen , da es dann beendet wird und alle Zeilen danach ignoriert werden.quelle
su user -c <command>
sollte das beheben.()&
und das Verwenden einessleep
Befehls ist der richtige Weg, um eine solche Verzögerung einzuführen. Ich würde jedoch erwähnen, dass die Verwendungrc.local
nur eine von mehreren Möglichkeiten ist, dies zu tun. Eine andere Möglichkeit besteht darin, ein Dienstskript zu schreiben, das dann nach Bedarf vor oder nach anderen Diensten abgelegt werden kann. Es ist auch möglich,@reboot
in einem Crontab zu verwenden.Sie können dies auch im Terminal eingeben:
und geben Sie dies ein:
und geben Sie im Skript am Anfang Folgendes ein:
und es könnte auf diese Weise gut funktionieren.
quelle
Ein weiterer Vorschlag ist das Erstellen eines ausführbaren Bash-Skripts. Nennen wir es onboot.sh und speichern es in Ihrem Home-Verzeichnis
~ / onboot.sh
Machen Sie es dann ausführbar, indem Sie diesen Befehl ausführen
Fügen Sie dann diese Zeile zu Ihrem ~ / .bashrc hinzu
Jedes Mal, wenn Sie eine neue Terminalsitzung erstellen, wird diese ausgeführt
~/.bashrc
, und dann wird Ihre~/onboot.sh
Datei ausgeführt.BEARBEITEN: Ich habe vergessen zu erwähnen, dass dies nur für diesen bestimmten Benutzer ausgeführt wird. Nicht für alle Benutzer im System.
quelle