Jak moc to potřebuješ mít bezpečný? U tohodle řešení si teď nejsem jistej, jestli by nestačilo uživateli dostatečně rychle mačkat ^C aby se dostal do shellu...
Robustnější řešení by bylo dát do inittabu něco na způsob "/bin/su - config /path/to/my_ingenious_app"
Mate pravdu, zkousel jsem hned po prihlaseni drzet Ctrl+C a okamzite X spadly a dostal jsem se do terminalu.
Podle vasi rady jsem do /etc/inittab pridal radek:
app:2345:once:/bin/su config -c /usr/local/bin/mojeapp
a v
/usr/local/bin/mojeapp mam:
#!/bin/bash
startx
java -jar /usr/local/bin/program.jar
killall Xorg
exit
Po nabootovani se spusti X a ukaze se prihlaseny terminal (v X) na uzivatele config. Moje java aplikace se ale nespusti. Jakmile napisu do X terminalu exit, nebo zmacknu Ctrl+D, vypise se chyba javy, ze nebezi X.
A sputit primo java app z inittab nemuzu, protoze mi nebezi X. Pokud ve skriptu
/usr/local/bin/mojeapp mam
startx &, spadne to hned vcetne chyboveho vypisu javy a vubec se nedostanu do terminalu.
Jeste jsem zkousel spoustet java app pomoci startx,
/usr/local/bin/mojeapp:
#!/bin/bash
startx "java -jar /usr/local/bin/program.jar" -- :0
exit
Jenze to spadne na
"xterm: /usr/bin/xterm: bad command line option -a"Neprojde nic s pomlckou, ani 'startx mc -a" -- :0'. Naopak vse bez pomlcky funguje: 'startx mc" -- :0'
Nevite, jak to nejlepe vyresit? Me uz v tuto dobu dochazeji napady.
Take mi prijde zbytecne mit trvale spustene X, kdyz se aplikace pouzije jednou a pak v idelanim pripade jen parkrat za rok, nebo vubec. Castecne se mi to povedlo vyresit zapisem v inittab:
kb:2345:kbrequest:/bin/su config -c /usr/local/bin/mojeapp
pak se normalne nabootuje do textoveho rezimu a kdyz uzivatel zmackne Alt+sipkaNahoru, spusti se dany prikaz.
Nechapu proc se bojite Swingu. Je to perfektne proverena technologie a v posledni verzi (po Jave 6u10) nema zadne podstatne vady. Tak proc se tomu branit?
Ja se Swingu nebojim, par aplikaci jsem v nem uz taky napsal.
Ale pokud jste zkousel Javu FX, je o hodne lepsi. U noveho projektu se mi FX zda jako lepsi volba. Ale kvuli mnou vyse popsanym problemum asi nakonec budu muset skoncit u Swingu...