Bash - nazwa skryptu

Potrzebujesz pomocy z C, C++, perl, python, itp.
ksysinek
Beginner
Posty: 155
Rejestracja: 14 czerwca 2007, 00:33
Lokalizacja: *Miasto know-how

Bash - nazwa skryptu

Post autor: ksysinek »

Witam. Napisałem sobie prosty skrypt, który jednak dość często wywołuję. Zdarza się, że jednocześnie uruchomionych jest kilka takich skryptów. Czasami jednak potrzebuję zabić któregoś. Jednak gdy uruchomię na serwerze, wszystkie skrypty maja nazwę ,,mojskrypt.sh''.

Pytanie moje brzmi, co muszę zrobić, aby w top, moje skrypty przybrały nazwę Alfa, Beta, Gamma? Dla ułatwienia powiem, że skrypt wywoływany jest z parametrami, i wystarczy mi, że nazwa będzie $1
ponton
Beginner
Posty: 406
Rejestracja: 24 stycznia 2007, 01:40
Lokalizacja: Kalisz/Wroc³aw

Post autor: ponton »

To nie lepiej podzielić ten skrypt na kilka skryptów?

Nie wiem, jak to w Bashu zrobić, ale jest wywołanie systemowe prctl, które może zmienić nazwę procesu: http://manpages.courier-mta.org/htmlman2/prctl.2.html
ksysinek
Beginner
Posty: 155
Rejestracja: 14 czerwca 2007, 00:33
Lokalizacja: *Miasto know-how

Post autor: ksysinek »

Nie mogę go podzielić. Jest wywoływany przez eggdropa który siedzi na IRCu. Dla określonego tekstu robi zawsze to samo. Wywoływany jest właśnie z parametrem "text" Chciałbym, żeby w top nie było mojskrypt.sh tylko text właśnie
Ister
Junior Member
Posty: 566
Rejestracja: 05 marca 2009, 12:42

Post autor: Ister »

Użyj

Kod: Zaznacz cały

ps ax
zamiast top do znalezienia pida skryptu. Tam masz podane z parametrami.
ksysinek
Beginner
Posty: 155
Rejestracja: 14 czerwca 2007, 00:33
Lokalizacja: *Miasto know-how

Post autor: ksysinek »

Ehh, nie lubię półśrodków ale ten niestety pozwala mi zobaczyć który proces jest od czego. Dzięki
Ister
Junior Member
Posty: 566
Rejestracja: 05 marca 2009, 12:42

Post autor: Ister »

Kod: Zaznacz cały

man top
podpowiada, żeby użyć

Kod: Zaznacz cały

top c
O to chodziło?
ksysinek
Beginner
Posty: 155
Rejestracja: 14 czerwca 2007, 00:33
Lokalizacja: *Miasto know-how

Post autor: ksysinek »

Ister to też pomaga ale czasami komenda, którą wykonuje skrypt jest zbyt długa, żeby zmieścić się na ekranie. Gdybym umiał zmienić nazwę skryptu wyświetlaną w top, wszystko byłoby dobrze.
Ister
Junior Member
Posty: 566
Rejestracja: 05 marca 2009, 12:42

Post autor: Ister »

Będąc w top możesz przy pomocy ,,f'' usunąć niepotrzebne Ci informacje. O ile takie są oczywiście. Wtedy będzie większa część komendy wyświetlona.

Jedyny pomysł jak możesz to zrobić dokładnie tak jak chcesz jest następujący (uwaga - długie i dookoła, ale nic mądrzejszego nie przychodzi mi do głowy).
Skrypt, który uruchamiasz stanowi wzorzec. Tworzysz skrypt do uruchamiania skryptu, który:
  1. Sprawdza jaki aktualnie jest najwyższy uruchomiony skrypt (albo najniższy wolny, ale to więcej zabawy).
  2. Kopiuje główny skrypt pod nową nazwą (np. 1skrypt, 2skrypt itd.).
  3. Uruchamia skopiowaną wersję w tle.
  4. Odłącza uruchomiony przez siebie skrypt.
  5. Kończy działanie.
Z kolei główny skrypt powinien działać w taki sposób, że z chwilą zakończenia kasuje swoje pliki uruchomieniowe.

Na chwilę obecną nic mądrzejszego mi do głowy nie przychodzi.

Ewentualnie możesz pobawić się i zmodyfikować ,,top'' (oczywiście na poziomie kodu źródłowego) tak, żeby można było przełączyć go w tryb wyświetlania, w którym ,,pid+komenda'' byłyby w jednej linii, a pozostałe dane w następnej. Ale to jest jeszcze więcej roboty.
ODPOWIEDZ