← Back to team overview

sslug-teknik team mailing list archive

Bruge /usr/bin/screen til at starte interaktivt program ved boot

 

Jeg har brug for at køre et program, som kræver interaktivitet/brugerinput,
og vil gerne have at det starter ved boot på min computer også når jeg ikke
er hjemme. Så kan jeg forbinde til det senere og styre det som jeg vil.
Til det formål har jeg fundet programmet screen (/usr/bin/screen på MDK91)
og jeg har fundet ud af at jeg kan bruge 

[kaj@pc dir]$ /usr/bin/screen -d -m -S programnavn ./program

-dette gør at jeg kan logge ud af maskinen og så kører programmet videre i
baggrunden. Når jeg så kommer tilbage kan jeg få fat i det med

[kaj@pc dir]$ /usr/bin/screen -d -r programnavn

-og så er jeg "inde" i programmet igen.

Det vil jeg gerne have sker ved boot, dvs. umiddelbart efter init-scriptene
er færdige, og derfor antager jeg at det er root som skal gøre noget, da
brugeren kaj jo ikke er logget ind.

Hvis jeg skriver følgende i /etc/rc.d/startprog

#!/bin/sh
su - kaj -c "cd /home/kaj/dir; /usr/bin/screen -d -m -S programnavn
./program"

-så virker det ikke. screen starter og programmet kører iflg. `ps aux|grep
program`, men screen kan ikke få fat i det igen. (melder at der ikke er
nogen sockets i /home/kaj/tmp/ ).

Jeg har også prøvet at skrive ovenstående i /home/kaj/bin/startprogram og så
køre "su - kaj -c "/home/kaj/bin/startprogram" men det giver samme
(elendige) resultat.

NB: Det er afgørende at programmet har /home/kaj/dir som working directory,
og ikke bare /home/kaj eller andet.

Hvad går galt og hvad skal jeg gøre istedet?

Pft.
-- 
Mvh
Kenneth


Follow ups