[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