Skocz do zawartości
LolikZabójca

Otwórz dane exe na linuxie i zamknij w wybranym momencie

Rekomendowane odpowiedzi

Siemka,

sytuacja wygląda tak:

mam zestaw programów w C# jako exe na VPSie. Muszę zrobić aplikację na tego vpsa z linuxem najlepiej w C++, ale może być i C#, która odpali wybrany program .exe przez mono(program jest oczywiście w pełni zgodny z mono na linuxie i testowany już ręcznie) i zamknie go w wybranym przeze mnie momencie.

Wchodząc w szczegóły chodzi o to że program który muszę napisać będzie pobierał z innego serwera listę aplikacji które mają być uruchomione z pakietu programów w mono(.exe C# tak jak wspominałem) i zamykać dany program z pakietu jeśli na liście go nie będzie. Ma to być swoisty kontroler pracy programów na tym VPSie.

W jaki sposób uruchomić wybrany program przez mono na linuxie, a następnie przechowywać do niego wskaźnik(?) który pozwoli go zamknąć w wybranym momencie korzystając z C++, bądź C# pod mono?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

nie wiem jak wyglada mono, strzelam ze cos mniej lub bardziej w stylu `mono parszywa12.exe`, wiec czemu nie `pkill mono parszywa12.exe`?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
2 godziny temu, Chell napisał:

nie wiem jak wyglada mono, strzelam ze cos mniej lub bardziej w stylu `mono parszywa12.exe`, wiec czemu nie `pkill mono parszywa12.exe`?

Mniej więcej tak. Dlaczego? Bo może być np. plik.exe otwarty 3 razy, w każdym inne dane wejściowe i muszę zamknąc określony z nich.

Może inaczej to wygląda tak mam katalogi np.:

Katalog1

Katalog2

Katalog3

i w każdym znajduje się plik.exe(o tej samej nazwie ma się rozumieć). Program dostaje dane z serwera że ma uruchomić plik.exe z Katalog1 i Katalog2. Potem dostaje informację, że ma zamknąć plik.exe z Katalog2, ale urochimć z Katalog3. Muszę więc mieć opcję zamknięcia konkretnego procesu.

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

to podawaj szerszą ścieżkę, np `mono katalog1/plik.exe', wtedy podajesz `pkill mono katalog1/plik.exe`. A jeżeli to też jest za mało, to jest bardzo duża szansa że mono zwraca PID - w takim wypadku przechowuj to PID, i później możesz rzeczony proces zabić przez `kill -9 [pid]`

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Pewnie już sobie poradziłeś, ale i tak napiszę (może komuś się przyda): w C/C++ wystarczy skorzystać z jakiegoś wariantu exec oraz z killa, a jak chcesz informacji o już odpalonych procesach to musisz pogrzebać w katalogu /proc/. ;)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×