Qualquer parâmetro de linha de comando para o kernel do Linux aparecerá em /proc/cmdline
. Você pode colocar qualquer coisa que você gosta lá (desde que não seja um parâmetro reconhecido pelo kernel ou qualquer um dos drivers ou o sistema initrd). Por exemplo, você pode criar menus sofisticados no grub e usá-los em um script de inicialização como /etc/rc.local
para decidir o que fazer com ele.
Por exemplo, adicione um /etc/grub.d/09-xcmd
com:
#! /usr/bin/tail -n+2
menuentry 'XMBC' {
set xcmd='xcmd=xmbc'
echo 'Now select a kernel'
sleep 1
}
Em seguida, adicione a /etc/default/grub
:
GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT \${xcmd}"
Executar update-grub
.
Em /etc/rc.local
, você poderia ter:
case $(cat /proc/cmdline) in
(*xcmd=*) exec sudo -Hu marcel startx;;
esac
E no seu ~/.xinitrc
:
cmdline=$(cat /proc/cmdline)
case $cmdline in
(*xcmd=*)
xcmd=${cmdline##*xcmd=}
xcmd=${xcmd%% *}
"$xcmd" &
esac