Upstart: aceita entrada do usuário para comutar o xorg.conf

0

Estou tentando obter um script de inicialização que requer a entrada do usuário em execução antes do gdm iniciar (o script deve permitir-me escolher em uma lista do xorg.conf a que eu gostaria de usar para a sessão atual).

Já tentei criar um pregdm.conf em / etc / init, contendo:

start on filesystem
stop on runlevels [06]
#  ...
console output

script
  # script that uses read to gather user input and replaces xorg.conf with the selected one
end script

e alterando start on em /etc/init/gdm.conf para:

start on (filesystem
          and started dbus
          and started pregdm
          and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
               or stopped udevtrigger))

Os ecos são exibidos no console, mas não posso esperar pela entrada do usuário: o gdm é iniciado imediatamente.

Algum apontador?

Muito obrigado

    
por Utaal 15.02.2011 / 14:51

2 respostas

1

O Upstart não é destinado ao uso interativo.

É provável que a entrada padrão do seu script seja redirecionada para longe de você. Você poderia tentar usar um descritor de arquivo diferente.

#!/bin/bash
exec 3<&0
read -u 3 -p "Choose one: " input
exec 3<&-

Aqui está um script de demonstração completo que mostra a entrada proveniente de um arquivo e do usuário:

#!/bin/bash
exec 3<&0
while read -r line
do
    read -r -p "$line " -u 3 input
    echo "$line/$input"
done < inputfile

Se você estiver usando um shell que não tenha a opção -u para leitura:

read input <&3
    
por 15.02.2011 / 16:58
0

Acho que você deveria fazer algo assim:

  [ -x /usr/bin/plymouth ] && /usr/bin/plymouth --hide-splash
  while : ; do
      echo -n $"XXX $1 (Y)es/(N)o? [Y] "
      read answer
      if strstr $"yY" "$answer" || [ "$answer" = "" ] ; then
         ...
  [ -x /usr/bin/plymouth ] && /usr/bin/plymouth --show-splash
    
por 27.09.2011 / 23:46