Abro varias pestañas de shell cuando inicio KDE y acabo de agregar keychain
a mi ~/.shellrc
el problema es que todas las pestañas solicitan contraseñas clave cuando inicio sesión. Esto es bastante molesto para hacer esto. ¿Hay alguna buena solución para esto, de modo que todas las pestañas simplemente se inicien y, una vez que haya iniciado sesión en una pestaña, todas tengan las claves cargadas?
Respuesta aceptada:
Aquí hay dos métodos:
Puede asegurarse de que el llavero solo se abra en una pestaña como esta:
if mkdir /tmp/keychain.lock; then
eval `keychain --eval --agents ssh id_dsa`
rm -r /tmp/keychain.lock
fi
Pero es posible que no esté en la primera pestaña en la que aterriza; es posible que deba buscarlo, lo que podría ser igual de molesto. Esto funciona porque mkdir es una operación atómica:solo una secuencia de comandos tendrá éxito y esa mostrará el aviso.
Otra forma mostrará el mensaje en todas las pestañas, pero las cerrará una vez que responda en cualquiera de ellas. Puede sondear un archivo o usar herramientas de inotificación como esta:
file=/tmp/keychain-wait
touch $file
inotifywait -e delete_self $file |\
while read file event; do
if [ "$event" = "DELETE_SELF" ]; then
pkill keychain
fi
done &
keychain
rm $file
Este presenta el mensaje, pero primero inicia un observador para ver si se elimina un archivo. Una vez que se satisface la solicitud, el archivo se elimina y el observador eliminará cualquier otra solicitud que esté esperando. inotifywait es de inotify-tools; inotify es una API de Linux. Puede haber una API similar en otros Unices, pero si no, solo necesita un bucle que sondee para ver si el archivo se eliminó.