[linux] Uitvoeren van commando's in screen bij opstarten

Cecil Westerhof CecilWesterhof op xs4all.nl
Vr Aug 1 11:58:19 CEST 2008


Bij het opstarten van screen worden er meerdere screen sessie geopend
-door middel van de instellingen in .screenrc- waarin verschillende
programma's draaien. Indien een programma wordt afgebroken kan met
'${COMMAND}' dat programma weer worden opgestart. Vanwege DRY (Do not
Repeat Yourself) zou ik willen werken met:
        setenv COMMAND 'tg-admin shell'
        screen -t shell
        exec "${COMMAND}"

Dat werkt echter niet. Er wordt niets uitgevoerd en er is ook geen
foutmelding.

Wat wel werkt:
        setenv COMMAND 'tg-admin shell'
        screen -t shell
        exec tg-admin shell

Echter als het commando wordt aangepast, moet er nu op twee plaatsen een
mutatie plaatsvinden. Is hier iets tegen te doen?

Voor de goede orde, zonder spatie in ${COMMAND} werkt het wel:
        setenv COMMAND 'start-tblog'
        screen -t tblog
        exec "${COMMAND}"

Een ander probleem is dat per screen in .screenrc maar één keer een
commando d.m.v. exec uit kan worden gevoerd. Dit kan natuurlijk op
worden gelost door een script aan te roepen met exec, maar is er een
andere manier? Volgens de documentatie zou het met eval moeten kunnen,
maar dat werkt niet.
Als ik in .screenrc opneem:
        screen -t testing
        eval /bin/date '/bin/echo tweede commando' bin/date

Resulteert dat in:
        unknown command 'bin/date'
        unknown command 'bin/echo'
        unknown command 'bin/date'

-- 
Cecil Westerhof <CecilWesterhof op xs4all.nl>




More information about the Linux mailing list