Ich versuche, ein Start-Skript und ein Stop-Skript für mein Projekt zu erstellen. Ich muss einen Sass Auto-Compiler sowie einen Server laufen lassen und die Ausgabe von beiden in eine Datei umleiten. Ich verwende dafür lite-server
und sass --watch
.Kill Hintergrund Prozesse in Linux
Damit diese Prozesse gleichzeitig ausgeführt werden, verwende ich &
, um die Prozesse zu untersuchen. Dies stellt die Herausforderung dar, die Skripte zu stoppen, ich kann die Skripte nicht mit Ctrl+C
stoppen, wie ich es normalerweise tun würde. Ich dachte, ich würde dies überwinden, indem ich die Prozess-IDs in einer Textdatei ablegen würde.
kam ich mit dem folgenden „Start“ Skript auf:
# Start a sass watcher and a server running simultaneously. Store the PIDs in a
# text file so that the processes can be easily stopped.
(
lite-server &
echo $! > .pids.txt &
sass --watch sass:css --style=compressed &
echo $! >> .pids.txt &
) &> log.txt
cat .pids.txt
Dann werden die Prozesse zu stoppen, ich bin mit
kill $(cat .pids.txt)
die Prozess-IDs Schreiben in eine Textdatei scheint Art von Haschisch. Gibt es einen besseren Weg, um das zu erreichen, was ich versuche?
Ohne die PIDs in eine Textdatei zu schreiben, können diese Prozesse nur einmal (eine Instanz) auf Ihrem Computer ausgeführt werden, Sie können den Befehl 'killall' verwenden. 'killall -s KILL lite-server sass' (entweder einzeln oder kombiniert) – VanagaS
Ok, cool. Ich denke nicht, dass dies die beste Vorgehensweise wäre, aber es macht Sinn. –