Spróbuj tego:
echo '#!/usr/bin/env python' > myscript
cat myscript.py >>myscript
chmod +x myscript
./myscript
Oczywiście trzeba będzie zmienić kod aby zabić proces o nazwie „myscript” w systemach UNIX, plik wykonywalny zawiera kilka bajtów na początku którego powiedzieć OS jaki format binarny jest używany. Jeśli pierwsze dwa bajty to #!
, system operacyjny zakłada, że jest to plik tekstowy, który może zostać wykonany przez inny program, a system operacyjny ładuje inny program i przekazuje mu plik tekstowy.
W tym przypadku prawdopodobnie mógłbym napisać #!/usr/bin/python
w górnej linii, ale jeśli twój pyton jest w /usr/local/bin
, to nie zadziałałoby. Zamiast tego używam env
, aby zmusić go do przeszukiwania normalnej ścieżki dla Pythona. Wszystkie systemy UNIX mają env w katalogu/usr/bin. Aby uzyskać więcej informacji, wpisz man env
.
jak to, że różni się od 'pkill'? – hasen
Nie musisz używać pid. Możesz użyć dowolnego sposobu identyfikacji procesu, który twój procesor zabójca pozwala ci użyć. Wszystkie * nix używają pid wewnętrznie, ale czasami ludzie chcą zabić wszystkie procesy pasujące do wzorca, a nie tylko konkretnego pid. –
... ale ostatecznie dostajesz się do pid: jak wspomniałem powyżej, ktoś ma więcej zmian, aby zabić niezamierzony proces, przechodząc przez inne sposoby. Byłem tam. – jldupont