Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[bash] skrypt startujący firefoxa

Ostatnio zmodyfikowano 2016-01-26 17:42
Autor Wiadomość
mateczek
Temat założony przez niniejszego użytkownika
[bash] skrypt startujący firefoxa
» 2016-01-26 11:56:37
Muszę odpalić mały kiosk na ubuntuserver (zabezpieczenia się nie liczą ma wyglądać i jakoś działać). Dodam, że skrypty w bash to nie moja mocna strona :)




naskrobałem taki skrypcik


#!/bin/sh
xset -dpms     // to wyłączanie ekran aby nie gasł
xset s off     // jak wyżej
while true ; do firefox 192.168.0.20/magazyn/index_s1.php
done


1. firefox jest z dodatkiem Rkiosk.
2. skrypt jest dodany do pliku autostrart w srodowisku openbox.
 
3 ale czasem zdarza się, że zaczyna w nieskończoność uruchamiać nowe okna firefoxa!!! ktoś ma pomysł jak poprawnie rozwiązać ponowne odpalenie Firefoxa po zamknięciu !!!
P-144023
mateczek
Temat założony przez niniejszego użytkownika
» 2016-01-26 17:42:51
dobra zabawę z bash zostawiam na późniejsze potem!!! tymczasowo klepnąłem w qt-c++ mały konsolowy programik do startowania firefoxa
Firefox ma to do siebie, że działa jako jeden proces !!! To znaczy, że jeśli uruchomimy Firefoxa jeszcze raz, a proces istnieje to istniejący proces odpali nowe okno a nowo utworzony proces się zamyka (ten mechanizm prowadzi do zapętlenia i zawalenia pulpitu okienkami w przypadku normalnego startowania procesu!!!)


plik nagłówkowy klasy myApplication

mapp.h
C/C++
#ifndef MAPP_H
#define MAPP_H
#include<QCoreApplication>
#include<QProcess>
#include<QFile>

class mApp
    : public QCoreApplication
{
    Q_OBJECT
    QProcess * fproc;
    const QString progName { "/usr/bin/firefox" };
    const QStringList wwwSite { { "localhost" }, { "-P marek" }, { "-no-remote" } }; // argumenty z którymi wystartuje Firefox
    const QStringList killffox { { "firefox" } };
public:
    mApp( int argc, char * argv[] );
    ~mApp();
   
    signals:
   
public slots:
    void ffoxClose( int a );
};

#endif // MAPP_H



plik źródłowy klasy myApplication
C/C++
#include "mapp.h"
#include<QFileInfo>

mApp::mApp( int argc, char * argv[] )
    : QCoreApplication( argc, argv )
{
    fproc = new QProcess( this );
    QFileInfo lock( "/home/tygrysy/.mozilla/firefox/marek/lock" ); // z obserwacji. Ten plik istnieje gdy Firefox jest uruchomiony
    if( lock.isSymLink() ) {
        fproc->start( "killall", killffox ); //polecenie systemowe zamknięcia procesu
        fproc->waitForFinished();
    }
    fproc->start( progName, wwwSite ); //odpalamy firefoxa
    connect( fproc, SIGNAL( finished( int ) ), this, SLOT( ffoxClose( int ) ) ); // sygnał zakończenie procesu odpala ponownie program
   
}

mApp::~mApp()
{
    fproc->close();
    fproc->destroyed();
   
}

void mApp::ffoxClose( int a ) //gdy aplikacja się skończy to odpalam ponownie
{
   
    QFileInfo lock( "/home/tygrysy/.mozilla/firefox/marek/lock" );
    if( !lock.isSymLink() ) {
        fproc->start( progName, wwwSite );
    }
}



funkcja main !!!
C/C++
#include "mapp.h"

int main( int argc, char * argv[] )
{
    mApp a( argc, argv );
   
    return a.exec();
}
P-144038
« 1 »
  Strona 1 z 1