IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

Controler des process


Sujet :

API standards et tierces Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2010
    Messages : 6
    Par défaut Controler des process
    Bonjour à tous,

    J'aurais voulu savoir si avec runtime.getRuntime.exec() on pouvait contrôler le process (stopper, redemarrer, contrôler l'état) ?

    Comme avec les threads , en général je fais quelque chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    import java.util.concurrent.Executors;
    import java.util.concurrent.ScheduledExecutorService;
    import java.util.concurrent.ScheduledFuture;
    import java.util.concurrent.TimeUnit;
     
    public class daemon{
     
    	private static daemon currentInstance;
    	private ScheduledExecutorService worker;
    	private ScheduledFuture<?> workInProgress;
    	private String directoryScan;
    	private String directoryArchive;
    	private String directoryModel;
    	private String dateDeclencheur;
     
    	private daemon() {
     
    	}
     
    	public static daemon getInstance(){
    		if(null == currentInstance){
    			currentInstance = new daemon();
    		}
    		return currentInstance;
    	}
     
    	public void setValues(String _directoryScan,String _directoryArchive,String _directoryModel,String _dateDeclencheur) {
    		directoryScan = _directoryScan;
    		directoryArchive = _directoryArchive;
    		directoryModel = _directoryModel;
    		dateDeclencheur = _dateDeclencheur;
    	}
     
    	public void run(){
    		worker = Executors.newScheduledThreadPool(1);
    		scanner CurrentScanne = new scanner(directoryScan,directoryArchive,directoryModel,dateDeclencheur);
            workInProgress = worker.scheduleAtFixedRate(CurrentScanne, 0, 3600, TimeUnit.SECONDS);
    	}
     
    	public boolean getStat(){
    		if(workInProgress.isCancelled() || worker.isShutdown() || worker.isTerminated()){
    			return false;	
    		}else{
    			return true;
    		}		
    	}
     
    	public void cancel(){
    		worker.shutdown();
    	}
     
    	public void restart(){
    		worker.shutdown();
    		run();
    	}
     
    }
    bon la c'est exemple tiré d'un de mes programmes, mais le principe que j'aimerais appliqué est similaire à ça : pouvoir contrôler le soft lancer par exec et le stopper, le redémarrer, contrôler s'il est toujours actif ou non, lui passer de nouveau paramètres etc... Sans le soucis de périodicité comme avec le ScheduledExecutorService

    Le but pour moi étant de lancer un VLC et de la contrôler via mon décodeur TV neuf.

  2. #2
    Membre confirmé Avatar de r2d2abc
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 212
    Par défaut
    Salut, à priori non (en tous les cas pas simplement). Freezer un soft externe, récupérer son état, lui passer des param. Tu possèdes la main sur les flux std qd tu le lances dont en terme IO c plutôt maigre, tu peux le killer, après c l'os qui l'exécute, et là tu n'as pas la main à moins qu'il soit en mode debug pas à pas (bjr l'angoisse), c pas une VM. Lui passer des paramètres par l'entrée std, s'il y a un GUI, tu peux déjà mieux communiquer. Peut être écrire un layer propre (à base de hook système) à l'application pour pouvoir la piloter.
    Au fait tu es sous quel OS, et quel est le soft ?
    Hope this helps
    ...
    PS: pour une exécution de process jette un coup d'oeil sur ProcessLauncher.java

  3. #3
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    La question en ce poser en premier est a mon avis, est ce que VLC n'inclus pas des outils qui permettent de le piloter. Ça permettrait de faire quelquechose qui ne soit pas trop bricolé.

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Citation Envoyé par Uther Voir le message
    La question en ce poser en premier est a mon avis, est ce que VLC n'inclus pas des outils qui permettent de le piloter. Ça permettrait de faire quelquechose qui ne soit pas trop bricolé.
    Je pense que VLC à été prevu pour. (dans mes souvenirs y'a un espece de serveur http qui permet de lui faire faire des trucs voir http://www.videolan.org/doc/play-how....html#id310608).
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 17
    Dernier message: 02/02/2006, 12h03
  2. Réponses: 2
    Dernier message: 14/12/2004, 18h42
  3. [jsp]controles des formulaires servlet ou javascript ?
    Par alexandra_ape dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 05/07/2004, 14h46
  4. Listing des process sous Win NT
    Par David E dans le forum MFC
    Réponses: 5
    Dernier message: 19/02/2004, 16h26
  5. Gestion des process
    Par Oswald dans le forum C
    Réponses: 3
    Dernier message: 29/08/2003, 11h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo