Regularnie zapominam dodawać && shutdown -h now
do długotrwałego procesu. Czy jest jakiś sposób na dodanie shutdown -h now
polecenia po wywołaniu pierwszego polecenia? Jego celem nie jest przerywanie trwającego procesu. Może można obejrzeć PID?
command-line
bash
shutdown
process
brubaker
źródło
źródło
&&
zadziała tylko wtedy, gdy poprzednie polecenie zakończyło się powodzeniem. Jeśli chcesz, aby działał, nawet jeśli polecenie nie powiedzie się, użyj;
zamiast tego.Odpowiedzi:
Nie ma potrzeby wielokrotnego uruchamiania ps, aby wyświetlić listę wszystkich procesów i grep przez wyjście. Ustaw proces w tle za pomocą Ctrl-Z, a następnie uruchom
Jeśli masz uruchomione inne zadania w tle, po naciśnięciu klawiszy Ctrl-Z otrzymasz inny typ zadania zamiast [1]. Jeśli tak, użyj tego zamiast tego.
źródło
Możesz zrobić coś takiego, co sprawdzi, czy proces działa co 5 sekund i podejmie odpowiednie działania:
Zwróć uwagę na nawiasy kwadratowe w
grep
wyrażeniu. Ma to na celu zapewnienie, żegrep
proces nie zostanie dopasowany, jeśli znajdzie się naps
liście. Wystarczające jest otoczenie dowolnego znaku nawiasami kwadratowymi.źródło
Robię to cały czas.
&&
polecenie.fg && shutdown -h now
do:Alternatywnie możesz sondować zgodnie z sugestiami zawartymi w innych odpowiedziach takich jak to:
źródło
Jeśli znasz pid, możesz uruchomić to:
Aby uruchomić bez echa z ps, wykonaj następujące czynności:
I wreszcie, aby uruchomić go w tle bez żadnych danych wyjściowych:
Rozwiązanie Scotta jest dobre, ale eliminuje potrzebę
grep
ciągłego powtarzania, jeśli znasz już pid. I o wiele szybciej jest pisać.: Pźródło
Utwórz skrypt powłoki, aby uruchomić oba procesy:
MyShellScript.txt:
Po zapisaniu tego w katalogu, w którym rozpoczyna się dany proces, wykonaj:
Następnie, gdy chcesz uruchomić polecenie, po prostu wpisz,
./MyShellScript.txt
a zrobi to jedno i drugie.źródło