Linux script de inicialização. [RESOLVIDO]

1. Linux script de inicialização. [RESOLVIDO]

???
gokernel

(usa Linux Mint)

Enviado em 08/07/2017 - 16:27h

(
Olá !

Estou montando uma mini distro com o script ( /init ) assim:

#!/bin/sh
echo ... INICIANDO MINHA DISTRO : /init ...
/bin/mount -t devtmpfs none /dev
/bin/mount -t proc none /proc
/bin/mount -t tmpfs none /tmp -o mode=1777
/bin/mount -t sysfs none /sys
/bin/mkdir -p /dev/pts
/bin/mount -t devpts none /dev/pts

echo ------- Iniciando o Shell Padrao -------

echo ----------------------------------------------------
echo ---------- TEXT EDITOR: tte/edit/editor ----------
echo ----------------------------------------------------

echo Hello_World: Jesus Cristo é o meu Senhor !

exec /bin/init

/bin/sh


Toda ver que inicia aparece essa frase ate que se tecle ENTER:

Please press enter to activate this console.


PERGUNTA:
O que precisaria fazer para entrar direto na linha de comando eliminando essa mensagem ?

Se o script ( /init ) precisar de + algo, favor comentar !

Grato !


  


2. MELHOR RESPOSTA

3. Re: Linux script de inicialização. [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/07/2017 - 16:33h

Shell padrão não existe no init, ele deve iniciar os ttys


agetty tty1 linux 38400


Esse são meus scripts de inicialização


#!/bin/execlineb -P
# system one time tasks

# Export a proper envionroment
export PATH "/s6/helpers:/run/s6/rc.d:/s6/rc.d:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin"
cd /
s6-setsid -qb --
umask 022
if { s6-mount -o size=100%,mode=0755,noatime,nosuid,nodev -t tmpfs tmpfs "/run" }
if { s6-hiercopy "/s6"/run-image/ "/run" }

redirfd -r 0 /dev/null
redirfd -wnb 1 "/run"/service/s6-svscan-log/fifo

background
{
s6-setsid --
redirfd -w 1 "/run"/service/s6-svscan-log/fifo
fdmove -c 1 2
cd /run
/s6/s6-stage2
}
unexport !

cd "/run"/service
export PATH "/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
fdmove -c 2 1
s6-svscan -st0


#!/bin/execlineb -P

forbacktickx -p i { s6-ls -- /s6/rc.d }
importas -u i i
background { runonce ${i} }


#!/bin/execlineb -S0

cd /

# Merge environment
s6-envdir -I /s6/env-stage3

background { s6-echo -- syncing disk ... }
foreground { s6-sync }

background { s6-echo -- sending TERM to all processes ... }
foreground { s6-nuke -th } # foreground is process 1: it survives

importas -D "3000" TERM_GRACETIME TERM_GRACETIME
background { s6-echo -- wait ${TERM_GRACETIME} ms for graceful kill ... }
foreground { s6-sleep -m -- ${TERM_GRACETIME} }

background { s6-echo -- sending KILL to all processes ... }
foreground { s6-nuke -k }

background { s6-echo -- turning off swap }
foreground
{
ifelse -n { s6-test -d /proc/swaps } { }
s6-swapoff -a
}

background { s6-echo -- unmount local filesystems }
foreground { s6-umount -a }

background { s6-echo -- remount root as read-only }
foreground { s6-mount -n -o remount,ro /dev/root / }

# Reap all zombies then sync, and we're done
wait { }
foreground { s6-sync }

background { s6-echo -- doing ${@} ... }
foreground { ifelse { s6-test "$@" = "reboot" } { s6-reboot -f } s6-poweroff -f }



4. Re: Linux script de inicialização. [RESOLVIDO]

???
gokernel

(usa Linux Mint)

Enviado em 08/07/2017 - 16:53h


Olá !

Esqueci de falar que "shel padrão" é o busybox e não sei se tem esse comando ( agetty tty1 linux 38400 ).

Não posso verificar agora pois estou no Windows, mas muito obrigado, depois vejo !



5. Re: Linux script de inicialização. [RESOLVIDO]

???
gokernel

(usa Linux Mint)

Enviado em 09/07/2017 - 08:56h


Olá "north" e desculpe a demora em responder.

Mudei o script para isso antes de vc postar sobre o inittab:

#!/bin/sh
clear
echo -e "Welcome to \\e[1mMinimal \\e[32mLinux \\e[31mLive\\e[0m (/init)"
echo "... INICIANDO MINHA DISTRO : /init ..."
/bin/mount -t devtmpfs none /dev
/bin/mount -t proc none /proc
/bin/mount -t tmpfs none /tmp -o mode=1777
/bin/mount -t sysfs none /sys
/bin/mkdir -p /dev/pts
/bin/mount -t devpts none /dev/pts

echo "------------- Iniciando o Shell Padrao -------------"
echo " "

echo "----------------------------------------------------"
echo " "
echo " TEXT EDITOR:"
echo " tte, edit, editor"
echo " "
echo " C COMPILER:"
echo " tcc"
echo " "
echo "----------------------------------------------------"
echo " "
echo -e "Hello World: \\e[32mJesus cristo \\e[1meh o meu Senhor. \\e[0m (/init)"
echo " "

# echo "INCICIANDO exec setsid cttyhack sh"
echo "INCICIANDO getty tty1 linux 38400"
# exec setsid cttyhack sh
getty tty1 linux 38400

echo "INICIANDO exec /bin/init"
exec /bin/init

echo "INICIANDO /bin/sh"
/bin/sh


Muito obrigado pela a ajuda acho que agora vai funcionar ... vou marcar o tópico como resolvido !

Grato !



6. Re: Linux script de inicialização. [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 09/07/2017 - 09:03h


Muito obrigado pela a ajuda acho que agora vai funcionar ... vou marcar o tópico como resolvido !

Grato !


Usando busybox init ele vai ler /etc/inittab pra ver o que fazer, voce deve ter um script de inicialização e marcar ele no inittab como

::sysinit:/caminho/pro/initscript

e inittab tambem pode criar serviços que reiniciam quando mortos usando

tty1::respawn:/sbin/getty 38400 tty1

No gentoo com OpenRC/sysVinit se usa de tty1 ate tty6.

tambem precisa marcar um script pra ser rodado quando o sistema entra estado pra reniciar.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts