Jak mogę rozpocząć proces pod inną nazwą?


12

Zasadniczo chcę dynamicznie uruchamiać niektóre procesy, które mogą tworzyć własne procesy potomne, a także chcę zabić pewną grupę procesów, które właśnie utworzyłem, kiedy tylko chcę.

Jednym ze sposobów, jakie mogłem wymyślić, jest rozpoczęcie procesów o nazwie (aby odróżnić je jako grupę), a następnie użycie ich pkilldo zabicia ich według nazwy.

Pytanie brzmi: jak rozpocząć proces z imieniem, aby móc pkillgo zabić po imieniu? Jestem również otwarty na inne rozwiązania.


Czy pytasz, jak rozpocząć proces o nazwie innej niż zwykle używana ? A może po prostu pytasz, jak uruchomić proces z wiersza poleceń?
Eliah Kagan,

Nazwa procesu jest domyślnie wyświetlana tak samo jak nazwa pliku w systemie Linux. Nie chcę używać domyślnej nazwy pliku jako nazwy procesu ani zmieniać nazwy pliku przy każdym uruchomieniu. Chcę więc rozpocząć procesy z określoną nazwą, którą chcę, aby móc użyć polecenia „pkill -f MyOwnName”, aby zabić wszystkie procesy, które właśnie rozpocząłem, o nazwie MyOwnName na raz.
pamięć podręczna

Odpowiedzi:


12

Możesz użyć execwbudowanej powłoki:

bash -c "exec -a MyUniqueProcessName <command> &"

<command>zastępuje bieżącą powłokę, nie jest tworzony nowy proces, dlatego uruchamiam nową powłokę do wywołania exec.

Następnie możesz zabić proces za pomocą:

pkill -f MyUniqueProcessName

Możesz rozpocząć więcej niż jeden proces pod tą samą nazwą, a następnie pkill -f <name>zabije wszystkie z nich.


Jak się cofasz bash -c "exec -a MyUniqueProcessName <command> &"?
VNVN

1
@VNVN nie możesz. Jeśli polecenie zostało uruchomione, zostało uruchomione. Aby go „cofnąć”, musisz dokładnie wiedzieć, co zrobił i ręcznie cofnąć, jeśli to możliwe. Nie ma Ctrl + Z podczas uruchamiania poleceń.
terdon

+1. moje spostrzeżenie brzmi: nazwa używana dla exec -a name sleep 100pojawia się, kiedy to robię, ps -efale nie, kiedy to robię pstree -p.
Trevor Boyd Smith,

To nie działa na meld. ->bash -c "exec -a mymeld123 meld &"
Eduardo Lucio

0

AMItac / The Solaris Agency

Mam tę skrzynkę z narzędziem do transkodowania audio. (działa 3 razy), ale ma tylko JEDNĄ Nazwę.

Zrobiłem następujące. Wejdź do bin bin z narzędzia Shell i skopiuj go 3 razy, a następnie nadałem mu nową Nazwę. tc-1, tc-2, tc-3 (jest to małe narzędzie, więc nie je dużo miejsca na dysku twardym (z plikami binarnymi tłuszczu nie powinieneś używać innych wymienionych sposobów)

więc proces rozpoczął się od unikalnej nazwy i można go zabić za pomocą tej unikalnej nazwy bez niebezpieczeństwa zabicia innych procesów transkodowania, które chcę kontynuować.

kolejna sztuczka MOGĄ działać ....

dodaj skrypt #bash Name.sh, aby był wykonywalny. Wpisz tam swoje polecenia i uruchom sam skrypt bash. W Centos używa nazwy Bashscript, którą wykonałeś, a nie samej nazwy bin.

Mam nadzieję, że coś pomaga komuś tam.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.