bash: não é possível definir o grupo de processos do terminal (-1): ioctl inadequado para o dispositivo

4

Tentando executar o comando source usando o usuário "lfs" no ubuntu 14.04 e obtendo isto:

root@linux:~/lfs# su lfs - -c "source ~/.bash_profile"
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell

Alguma idéia?

Informações de fundo: Estou seguindo o livro do LFS, fazendo um script com ele, então no meu script que executo com o sudo, quando chegar a essa parte, depois de criar o usuário lfs e seus .bashrc e .bashprofile, Eu acho que está carregando.

Contexto:

echo "info: create 'lfs' group and user..."
groupadd -f lfs
id -u lfs &>/dev/null || useradd -s /bin/bash -g lfs -m -k /dev/null lfs
passwd -d -q lfs

echo "info: make 'lfs' own the 'tools' and 'sources' directories..."
chown lfs $LFS/tools
chown lfs $LFS/sources

echo "info: creating a clean '.bash_profile' as user 'lfs'..."
su lfs - -c "cat > ~/.bash_profile << \"EOF\"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF"

echo "info: creating a clean '.bashrc' as user 'lfs'..."
su lfs - -c "cat > ~/.bashrc << \"EOF\"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT PATH
EOF"

su lfs - -c "source ~/.bash_profile"

Editar:

Foi sugerido que minha sintaxe está incorreta, não estou na minha máquina linux no momento, então tentarei usar uma sintaxe diferente quando tiver a chance. No entanto, para obter informações, obtive a sintaxe da resposta aqui: link

    
por sprocket12 21.11.2016 / 20:11

1 resposta

4

  • su - username executa o shell de login de username como um shell interativo.

  • su username command arguments executa command arguments não interativamente na conta username .

Você comanda su lfs - -c "source ~/.bash_profile" significa executar - -c "source ~/.bash_profile" como o usuário lfs não interativamente . Agora o shell vê a opção - e diz: Eu devo executar como um shell de login interativo e tentar inicializar o terminal, mas su desconectou o processo filho do terminal de controle.

Em suma: O - está perdido ou errado.

Para uma discussão mais longa, veja praticamente o a mesma pergunta no serverfault.

    
por 21.11.2016 / 21:40