• Publicidad

Quién me ayuda con el ejercicio?

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Quién me ayuda con el ejercicio?

Notapor fati » 2006-08-23 10:58 @499

Hola, tengo que hacer un ejercicio para el lunes, y no tengo idea de como empezar a echarle mano, si alguien me pudiese ayudar...
Ahí va el enunciado....

En la configuración de los niveles de arranque de un sistema linux se utilizan tanto ficheros como directorios. Suponga que usted es el administrador y desea crear un programa en perl llamado consulta_init que pretende agilizar las tareas de mantenimiento de los niveles de arranque.
El programa tendrá el siguiente formato:

admon_init [ -t | -m | -o nivel | -s servicio [nivel] | -k servicio [nivel]]
donde:

-t mostrará para cada terminal de texto, los niveles que la activan.

-m mostrará un menú cuyo contenido se describe más adelante. Esta opción será la establecida por defecto, es decir, en el cado de no introducir ninguna, será la que se ejecute.

-o nivel establecerá el nivel indicado como el nivel de arranque por omisión.

-s servicio [nivel] activará el servicio indicado en el nivel especificado. El orden de activación se preguntará al usuario. Si no se indica nivel se realizará sobre el nivel de arranque del sistema.

-k servicio[nivel] desactivará el servicio indicado en el nivel especificado. El orden de activación se preguntará al usuario. Si no se indica nivel se realizará sobre el nivel de arranque del sistema.

En cado de elegir la opción -m, el menu será:

1.Mostrar todos los servicios disponibles para todos los niveles.

2.Mostrar los servicios que se lanzan para un determinado nivel, ordenadors por orden de ejecución. El nivel de preguntará al usuario.

3.Mostrar los servicios que se lanzan para un determinado nivel, ordenadors por orden de parada. El nivel de preguntará al usuario.

4.Mostrar el nivel de arranque por omisión.

5.Activar un sercicio a un nivel. El servicio, el nivel y el orden de activación se preguntará al usuario.

6. Desactivar un sercicio a un nivel. El servicio, el nivel y el orden de activación se preguntará al usuario.

7. Salir.

NOTAS: Para desarrollarlo cree copias de los ficheros /etc/inittab y el directorio /etc/init.d .
Nunca podrá utilizar la orden system.

Este es el enunciado,espero que puedan ayudarme.
Gracias
fati
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2006-08-23 10:41 @487

Publicidad

Notapor explorer » 2006-08-23 14:37 @651

Yo te lo hago por 100 €.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor fati » 2006-08-24 02:14 @134

uffff, no tengo, dejalo, ya me buscaré la leña.
Gracias de todas formas.
fati
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2006-08-23 10:41 @487

Notapor explorer » 2006-08-24 06:19 @305

Para leer los argumentos pasados al programa, es mejor usar un módulo como Getopts o similar.

Hay una cuestión de lógica que deberás incluir al principio del programa: si la opción '-m' está puesta o no hay ninguna opción puesta, entonces debes saltar a la zona de presentación del menú.

Para la opción -t, sólo hay que leer el fichero inittab y filtrar las líneas que se refieren a las terminales virtuales (vt) y presentarlas en pantalla (con algún filtrado añadido para que salgan guapas.

Con -o, significa que hay que editar el fichero inittab y cambiar un valor. Eso se puede hacer muy fácil en Perl con el modo de edición de línea (-i).

Con -s hay que hacer varias cosas. Primero hay que comprobar que el servicio dentro del init.d existe. Leer el nivel o asignarle el de por defecto. Comprobar que el nivel está dentro de los valores normales. Pedir al usuario el número de orden de activación. Comprobar que está dentro de los límites. Comprobar que el servicio ya está activado anteriormente. Borrar el servicio de su orden de activación anterior y ponerlo en el nuevo siempre y cuando no sean el mismo.

La opción -k es lo mismo, pero la operación se refiere a eliminar, por lo que se puede convertir en subrutina este proceso, ya que el proceso de eliminar un servicio lo tenemos en varias opciones.

Para la opción -m, hay que hacer un bucle donde se presente el menú y esperar la entrada del usuario. Responder según la entrada hecha y repetir. Las operaciones a realizar son algunas de las comentadas, por lo que parte del código se mete como subrutina para no repetirlo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor kidd » 2006-08-24 08:38 @401

Hola:

Ya te dió explorer varios tips para que puedas comenzar con tu ejercicio. Conforme vayas avanzando y te vayas atorando con gusto te podemos ayudar, pero recuerda que hay una gran diferencia entre ayudarte a hacer las cosas, a de plano hacer todo por ti.


Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor Perl user » 2006-08-24 12:36 @566

Ahora a dedicarnos a hacer tareas?

<sarcasm>YAY!</sarcasm>
Marco A. Manzo
[email protected]
http://www.unixmonkeys.com/amnesiac/
Perl Programming Language
Perl user
Maestro honorario
Maestro honorario
 
Mensajes: 271
Registrado: 2004-11-03 21:11 @924


Volver a Avanzado

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron