Visualizzazione dei risultati da 1 a 8 su 8

Discussione: avvio di un software

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    68

    avvio di un software

    INTRO
    server linux
    un intero sistema a mia disposizione
    ho accesso a qualsiasi cartella del server
    posso modificare permessi\proprietà di qualsiasi cartella

    RICHIESTA
    ho un file cgi si trova nella cartella
    /var/www/variedir/cgi-bin/script.cgi
    raggiungibile dall'esterno trammite
    http://un.sito/cgi-bin/script.cgi

    ho un eseguibile che voglio lanciare e lasciar aperto una volta eseguito la pagina web è in
    /home/unserver/ESEGUIBILE

    come faccio a far eseguire l'ESEGUIBILE e che rimanga accesso dopo.
    cosa devo inserire dentro script.cgi
    in che maniera è possibile eseguire un controllo per vedere se è già in esecuzione prima di lanciarlo?

    ps. mi andrebbe bene anche php
    ps. che cosa imposto come permessi e proprietari dei file?


    GRAZIE MILLE

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Di solito un programma fa il suo ciclo e poi esce.
    Di solito il passaggio di variabili da una sessione ad un'altra si fa tramite file (database).
    Di solito uno script CGI e` "confinato" dentro una dir particolare (la tua cgi-bin) ed accede a file confinati dentro una dir particolare (definita nella configurazione del webserver). Questo per ovvi problemi di sicurezza.

    I sistemi unix/linux hanno uno strumento chiamato lock, che impedisce l'accesso ad un file (ad es. database) mentre ci accede un altro file: da Perl puoi accedere a tale strumento tramite la funzione flock (ricordati poi di sbloccare, altrimenti non ci accedi piu` a quel file tramite un programma: devi cancellare il file .lock )

    Un programma (piu` precisamente uno script) Perl puo` essere avviato tramite CGI (common gateway interface - quindi richiamato da una pagina Web), o puo` essere avviato da sistema operativo.
    Un programma puo` anche essere avviato tramite il cron (vedi man cron e man crontab), in modo che venga ripetuto ad intervalli regolari o quando vuoi tu.

    Penso di averti dato alcuni strumenti per rivedere il progetto (ripensare il sistema di relazioni fra le varie componenti). Se non sono stato abbastanza chiaro, dovresti essere piu` dettagliato su cio` che vuoi fare, in modo da discutere su un progetto reale.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    68
    preferisco spiegarti il mio semplicissimo progetto dato che non conosco il cgi e quindi non ho capito assolutamente niente di ciò che hai detto :|

    allora

    c'è una directory che si chiama /home/sphere/

    qui dentro c'è un programma spheresvr che è un server di gioco.
    questo quando è avviato permette di connetersi a lui tramite un gioco e di interagire.

    se mi collego tramite ssh al server linux remoto

    faccio

    cd /home/sphere/
    ./spheresvr & exit

    chiudo la shell e il programma rimane avviato.


    io vorrei semplicemente creare una pagina web che quando la si visita avvii il server e lo lasci avviato.

    ovviamente questo cgi poi lo mettero dientro un htaccess quindi lo faro funzionare solo con user e password.

    quindi l'idea e quella di far avviare il server a qualche persona fidata evitando di dare dati di accesso alla macchina e\o caricarla di troppe cose da fare x avvialro. facilitare l'avvio insomma.

    gradirei anche mettergli un sistema che riconosca se eventualmente il server è già avviato o meno prima di rilanciarlo.

    questo è quanto

    grazie ancora

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Anzitutto una premessa.
    CGI e` un protocollo che serve per interfacciare il browser (client) con il server.
    Sul server il CGI deve essere gestito da un programma, che nella maggior parte dei casi e` uno script Perl (che a sua volta ha bisogno di un interprete per poter girare).
    Infatti in un programma Perl, per farlo diventare un CGI, devi inserire una libreria che richiami con
    use CGI;


    Non ho capito bene cosa sia il tuo server.

    Comunque escludo che si possa pensare di avviarlo tramite un CGI. Altrimenti nel giro di poco tempo la machina che lo gestisce diventa uno zombi. Un server non puo` girare sotto uno user che non abbia privilegi; e lo user sotto cui gira il CGI ha delle permission che permettono di fare ben poco.

    Eventualmetne tramite CGI puoi settare un parametro in un file, e poi periodicamente puoi andare a testare quel file e vedere cosa contiene.
    Stesso discorso per sapere se il server e` attivo.

    Esempio.
    Preparo due file:
    mio_server_running.dat
    mio_server_abilitato.dat

    Il mio_server_running e` leggibile da tutti, ma scrivibile solo dall'utente sotto cui gira il sever.
    Il programma server, setta in quel file una variabile che sara` 1 o 0 a seconda del caso: dovra` scrivere 1 quando e` attivo e viceversa.
    In alternativa puoi usare l'esistenza o la non-esistenza del file; scegli tu cosa preferisci in base al programma che scriverai in Perl o in linguaggio shell.

    Il mio_server_abilitato puo` essere scritto anche dal CGI, che ci scrivera` 1 quando vuoi che ilserver parta, e 0 quando vuoi che si fermi .

    Un cron (che gira con user di alto livello) andra` periodicamente (1 volta ogni 5 min? una volta ogni ora? - vedi tu) a verificare lo stato delle due variabili, e fara` partire di conseguenza il programma che fa partire il server e lo fa fermare a seconda della combinazione delle due variabili: se le due variabili concordano, non fa niente, se discordano fara` partire o fermare il server.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    68
    per server intendo un server in una farm
    un intero sistema debian dove c'è già attivo cgi\perl\php

    non ci credo che non sia possibile attivare un software via una pagina web.

    ci sono gestionali tipo, plesk che avviano software di linux. il plesk è sul web. quindi quesot mi suggerisce l'idea che si possa fare. :|

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    268
    installati plesk!

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    68
    non è quello il punto... -.-'

    intendo dire che se ci riesce lui, un modo c'è -.'

  8. #8
    certo che è possibile avviare un programma. Il problema è che tale programma è "figlio" del CGI che hai evocato, per cui al momento che il "padre" termina, anche il figlio defunge. Per evitare ciò si può utilizzare la funzione "fork" che sgancia i due programmi. La possibilità che poi il software lanciato possa continuare a girare dopo chiuso il CGI comunque è legato anche ad impostazioni di sicurezza del server.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.