Uruchamianie .bat przy starcie systemu UBUNTU

0

Cześć. Nie wiem czy w dobry temat trafiłem bo w takich sprawach jeszcze tutaj nie pisałem. Potrzebuje zrobić uruchamianie pliku .bat przy starcie systemu Ubuntu 14.04 linux. Nie mam naprawdę pomysłu dlaczego nie chce mi odpalać tego pliku. Ustawiam dla niego uprawnienia chmod +x path, w pliku na górze wpisuje !#/bin/sh, wpisywałem exec w rc.local, dodawałem plik do /etc/init.d, próbowałem uruchamiać polecenia sudem razem z wpisywaniem hasła przez echo no i żadna z tych metod nie działa. To moje pierwsze kroki z systemem linuxowym także może tutaj leży problem. Bardzo proszę o pomoc bo już nie mam pomysłów

0

A co masz w tym bacie i czemu uważasz, że Linux uruchomi windowsowy plik?

0

W tym bacie mam uruchomienie dwóch innych aplikacji bo docelowo potrzebuje przy starcie systemu uruchamiać dwie aplikacje. Czyli tu może leżeć problem w rozszerzeniu?

0

Pokaż zawartość tego pliku.

0

Ten, który służy za odpalanie dwóch aplikacji wygląda tak. Jest on w Documents i nazywa się runApp.bat

exec "/home/user/Downloads/elastic" &
exec "/home/user/Downloads/serv" &

Natomiast ten, który siedzi w /etc/init.d wygląda tak

#!/bin/sh

$echo haslo | sudo -S exec "/home/user/Documents/runApp.bat"
0

Nie .bat tylko bez rozszerzenia albo z rozszerzeniem sh (chociaż to i tak nie powinno mieć znaczenia). A w konsoli ten plik możesz uruchomić?

0

Tak w konsoli normalnie uruchamiam ten plik

./runApp.bat

0

z tego co widzę powinieneś użyć nohup.
http://linux.die.net/man/1/nohup
http://stackoverflow.com/a/5165750/1387438

Dla wyjaśnienia, jeśli proces się kończy to wysyła on sygnał hang up dla wszystkich procesów potomnych.
Domyślnie sygnał ten powoduje zakończanie wykonywania się aplikacji (ma to na celu zapobiec wyciekom procesów w uruchamianych w tle przez inny proces).
Twój skrypt jest rodzicem dla procesów, które uruchamia, więc po zakończaniu tego skryptu, procesy uruchomione w tle są zamykane.
nohup zmienia domyślny sposób obsługi sygnału hang up i zapobiega zamknięciu procesu jeśli rodzic się zakończył.

a rozszerzenie zmień na sh by trzymać się standardów danego systemu operacyjnego.

0

Przede wszystkim zależy czy masz tam systemd (jak np w centos), czy może zwykłe init a może mix jak w debianowych (jest systemd, ale systemd umie uruchamiać "normalne" skrypty startowe).

Z systemd się zachlastasz, z init łatwo. Poczytaj jak zrobić skrypt startowy w twojej dystrybucji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1