inittab '-' caractere no campo de processo

6

Eu tenho um arquivo inittab com a seguinte entrada:

console::askfirst:-/bin/ash

De acordo com esta página Man , um caractere '+' no campo de processo significa

init will not do utmp and wtmp accounting for that process.

No entanto, ele não diz nada sobre um caractere '-'. O que fazer com o caractere '-' no campo de processo?

    
por E-rich 11.10.2012 / 19:31

1 resposta

6

O hífen parece ser um recurso específico do Busybox (assim como "askfirst", que foi como descobri que você está usando o Busybox). O arquivo exemplo inittab diz:

# /bin/sh invocations on selected ttys
#
# Note below that we prefix the shell commands with a "-" to indicate to the
# shell that it is supposed to be a login shell.  Normally this is handled by
# login, but since we are bypassing login in this case, BusyBox lets you do
# this yourself...
#
# Start an "askfirst" shell on the console (whatever that may be)
::askfirst:-/bin/sh

Então, ele inicia o shell como um shell de login (começando por argv [0] com um hífen). O que um shell de login significa está além do escopo desta questão, mas geralmente significa que ele executará arquivos de inicialização diferentes (por exemplo, ~/.profile ).

A convenção de usar um hífen em argv [0], em vez de um sinalizador de linha de comando apropriado, para informar ao shell que é um shell de login, é uma convenção antiga - ela remonta a pelo menos o Second Edition UNIX. (argv [0] foi simplesmente "-" para shell de login até a Sexta Edição, depois foi alterado para "-/bin/sh" )

    
por 11.10.2012 / 19:39