Fórum Root.cz
Hlavní témata => Server => Téma založeno: strom159 10. 08. 2012, 11:32:59
-
Zdravím, je možné dát nějaký příkaz aplikaci, která běží na pozadí?
Např. spustím aplikaci na pozadí a chtěl bych, aby se restartovala. Mám v aplikaci příkaz reload, ale nevím jak ho můžu aktivovat.
Nejlépe bez toho, abych ho musel vytahovat do popředí, rád bych to spojil s webem, že bych klikl na tlačítko a ono se mi to restartovalo.
Děkuji
-
http://en.wikipedia.org/wiki/Inter-process_communication
-
Co přesně tam mám hledat?
-
Co přesně tam mám hledat?
Zpusoby, jak komunikovat s procesem.
Co napr. znamena "Mám v aplikaci příkaz reload"? To je informace asi tak na urovni "mam v aplikaci binarni retezec abcdef123456"...
-
Jde mi to, abych mohl nějak externě komunikovat s aplikací na pozadí bez toho, abych jo vytahoval do popředí.
-
Jde mi to, abych mohl nějak externě komunikovat s aplikací na pozadí bez toho, abych jo vytahoval do popředí.
Ano, my to chapeme. Na te strance z Wiki mas popsanych X zpusobu, jak se takova vec da udelat.
-
Na mě je to moc složité a ještě k tomu v angličtině.
-
Na mě je to moc složité a ještě k tomu v angličtině.
Tak nekomu zaplat, at ti to zprovozni. Co jinyho ocekavas?
-
Dobře, tak děkuji.
-
pokud chces jenom reload... zkus pouzit treba signaly, hledej funkce signal a kill
-
No, ještě bych to mohl udělat pomocí screenu, můžu ho vytvořit ctrl+A, jde to udělat pomocí příkazu?
-
Použij ty signály, to je nejjednodušší. Pokud bys potřeboval předávat nějaké hodnoty/zprávy a ne jen do aplikace „šťouchnout“, tak zkus třeba POSIX MQ (https://frantovo.cz/blog/?q=posilani-zprav-pomoci-fronty-posix-mq) (máš tam i zdroják a je to česky).
-
Použij ty signály, to je nejjednodušší. Pokud bys potřeboval předávat nějaké hodnoty/zprávy a ne jen do aplikace „šťouchnout“, tak zkus třeba POSIX MQ (https://frantovo.cz/blog/?q=posilani-zprav-pomoci-fronty-posix-mq) (máš tam i zdroják a je to česky).
A jak víš, že aplikace o které píše, na signály bude reagovat.
Zdravím, je možné dát nějaký příkaz aplikaci, která běží na pozadí?
Např. spustím aplikaci na pozadí a chtěl bych, aby se restartovala. Mám v aplikaci příkaz reload, ale nevím jak ho můžu aktivovat.
Nejlépe bez toho, abych ho musel vytahovat do popředí, rád bych to spojil s webem, že bych klikl na tlačítko a ono se mi to restartovalo.
Děkuji
Asi by to chtělo trochu víc detailů - takhle nikdo netuší, jestli se ptáš na nějakou hotovou app, nebo něco píšeš. Pokud jde o hotovou app, jaké je rozhraní, jestli reaguje na signály nebo je to všechno jinak. Potom se nediv, že dostaneš jen velmi obecnou reakci.
-
A jak víš, že aplikace o které píše, na signály bude reagovat.
Tak nějak jsem předpokládal, že mluví o aplikaci, kterou sám píše. Ale tak snad od ní má aspoň zdrojáky, ne?
- nastudovat API programu (D-Bus, sokety atd. třeba to podporuje)
- dopsat si tam reakci na signál případně MQ zprávu nebo něco jiného
- zkusit vyvolat požadovanou akci přes Xka nebo přes debugger
-
A jak víš, že aplikace o které píše, na signály bude reagovat.
Tak nějak jsem předpokládal, že mluví o aplikaci, kterou sám píše. Ale tak snad od ní má aspoň zdrojáky, ne?
- nastudovat API programu (D-Bus, sokety atd. třeba to podporuje)
- dopsat si tam reakci na signál případně MQ zprávu nebo něco jiného
- zkusit vyvolat požadovanou akci přes Xka nebo přes debugger
Hmm, předpokládal. Nic proti tazateli nemám a nechci se do něj nijak pouštět, ale po tom co jsem si přečetl jeho odpovědi považuji tvůj předpoklad za odvážný a tvá doporučení mimo realitu. Ale možná se pletu.
-
To jsem již vyřešil. Udělal jsem to tak, že jsem ji nedal na pozadí, ale pustil na samotným screenu.
A potom stačilo vypisovat příkazy do screenu.