Systemd_ui_binary_options

Systemd_ui_binary_options

Binary_options_strategy_mt4_trading
Forex_guide_for_beginners_pdf
Wiki_binary_option


Forex trading australia impuesto Forex kungsgatan 2 г¶öppettider Mejor estrategia de compra de divisas para principiantes Forex blog Singapur Opciones Binarias Seminarios Forex bank гґpningstider

Systemd systemd es un conjunto de bloques de construcción básicos para un sistema Linux. Proporciona un gestor de sistemas y servicios que se ejecuta como PID 1 e inicia el resto del sistema. Systemd proporciona agresivas capacidades de paralelización, utiliza la activación de socket y D-Bus para iniciar servicios, ofrece inicio on-demand de daemons, realiza un seguimiento de los procesos que utilizan grupos de control de Linux. Mantiene puntos de montaje y de montaje automático e implementa una lógica de control de servicios basada en dependencias transaccional elaborada. Systemd soporta scripts de inicio SysV y LSB y funciona como un reemplazo para sysvinit. Otras partes incluyen un daemon de registro, utilidades para controlar la configuración básica del sistema como el nombre de host, fecha, localidad, mantener una lista de usuarios conectados y ejecutar contenedores y máquinas virtuales, cuentas de sistema, directorios y configuraciones de ejecución y daemons para administrar redes sencillas Configuración, sincronización de tiempo de red, reenvío de registros y resolución de nombres. Nota: Para una explicación detallada de por qué Arch se ha movido a systemd. Vea este mensaje del foro. Contenido Uso básico del sistema El comando principal utilizado para introspeccionar y controlar systemd es systemctl. Algunos de sus usos están examinando el estado del sistema y administrando el sistema y los servicios. Vea systemctl del hombre para más detalles. Sugerencia: Puede utilizar todos los siguientes comandos systemctl con el conmutador host -H para controlar una instancia systemd en una máquina remota. Esto usará SSH para conectarse a la instancia systemd remota. Systemadm es el interfaz gráfico oficial para systemctl y es proporcionado por el paquete systemd-ui. Los usuarios de plasma pueden instalar systemd-kcm como una interfaz gráfica para systemctl. Después de instalar el módulo se agregará en Administración del sistema. Analizar el estado del sistema Mostrar el estado del sistema utilizando: Listar unidades en ejecución: Listar unidades falladas: Los archivos de unidades disponibles se pueden ver en / usr / lib / systemd / system / y / etc / systemd / system / (este último tiene prioridad). Lista de archivos de unidades instaladas con: Uso de unidades Las unidades pueden ser, por ejemplo, servicios (.service), puntos de montaje (.mount), dispositivos (.device) o sockets (.socket). Cuando se utiliza systemctl. Generalmente tiene que especificar el nombre completo del archivo de unidad, incluyendo su sufijo, por ejemplo sshd.socket. Sin embargo, hay algunos formularios cortos cuando se especifica la unidad en los siguientes comandos systemctl: Si no especifica el sufijo, systemctl asumirá .service. Por ejemplo, netctl y netctl.service son equivalentes. Los puntos de montaje se traducirán automáticamente a la unidad .mount apropiada. Por ejemplo, especificar / home es equivalente a home.mount. De forma similar a los puntos de montaje, los dispositivos se traducen automáticamente en la unidad de dispositivo apropiada, por lo tanto especificar / dev / sda2 es equivalente a dev-sda2.device. Vea man systemd.unit para más detalles. Nota: Algunos nombres de unidad contienen un signo (por ejemplo, cadena de nombres .service): esto significa que son instancias de una unidad de plantilla, cuyo nombre de archivo real no contiene la parte de cadena (por ejemplo, nombre.servicio). String se llama el identificador de instancia. Y es similar a un argumento que se pasa a la unidad de plantilla cuando se llama con el comando systemctl: en el archivo de unidad se sustituirá el especificador i. Para ser más exactos, antes de intentar instanciar la unidad de la plantilla name.suffix, systemd buscará una unidad con el nombre de archivo exacto de la cadena de nombres.suffix, aunque por convención tal choque sucede raramente, es decir, la mayoría de los archivos de la unidad que contienen un signo Para ser plantillas. Además, si una unidad de plantilla se llama sin un identificador de instancia, simplemente fallará, ya que el especificador i no puede ser sustituido. Sugerencia: La mayoría de los comandos siguientes también funcionan si se especifican varias unidades, consulte man systemctl para obtener más información. El interruptor - now se puede utilizar junto con habilitar. inhabilitar. Y la máscara para, respectivamente, iniciar, detener o enmascarar inmediatamente la unidad en lugar de después del siguiente arranque. Un paquete puede ofrecer unidades para diferentes propósitos. Si acaba de instalar un paquete, pacman -Qql paquete grep -Fe .service -e .socket se puede utilizar para comprobar y encontrarlos. Iniciar inmediatamente una unidad: Detener una unidad inmediatamente: Solicitar a una unidad que vuelva a cargar su configuración: Mostrar el estado de una unidad, incluso si está funcionando o no: Comprobar si una unidad ya está habilitada o no: Activar una unidad arrancar . Desactivar una unidad para no iniciar durante el arranque: Máscara de una unidad para que sea imposible iniciarla: Mostrar la página de manual asociada a una unidad (esto tiene que ser soportado por el archivo de la unidad): Reload systemd. Búsqueda de unidades nuevas o modificadas. Polkit de administración de energía es necesario para la administración de energía como un usuario no privilegiado. Si está en una sesión de usuario systemd-logind local y no hay ninguna otra sesión activa, los siguientes comandos funcionarán sin privilegios de root. Si no (por ejemplo, porque otro usuario está conectado a un tty), systemd le pedirá automáticamente la contraseña de root. Apague y reinicie el sistema: Apague y apague el sistema: Suspenda el sistema: Coloque el sistema en hibernación: Coloque el sistema en estado de suspensión híbrida (o suspenda a ambos): Archivos de la unidad de escritura La sintaxis de systemd S se inspira en los archivos .desktop de la especificación de entrada de escritorio XDG, que a su vez están inspirados en los archivos .ini de Microsoft Windows. Los archivos de unidades se cargan desde dos ubicaciones. De menor a mayor precedencia son: / usr / lib / systemd / system /. Unidades proporcionadas por los paquetes instalados / etc / systemd / system /. Unidades instaladas por el administrador del sistema Nota: Las rutas de carga son completamente diferentes cuando se ejecuta systemd en modo de usuario. Los nombres de unidad systemd sólo pueden contener caracteres alfanuméricos ASCII, subrayados y puntos. Todos los demás caracteres deben ser reemplazados por escenas x2d de estilo C. Vea man systemd.unit y man systemd-escape para más información. Mire las unidades instaladas por sus paquetes para ejemplos, así como la sección de ejemplo anotada de man systemd.service. Sugerencia: Los comentarios preenunciados con pueden utilizarse también en archivos unitarios, pero sólo en nuevas líneas. No utilice comentarios finales después de parámetros del sistema o la unidad no se activará. Manejo de dependencias Con systemd. Las dependencias se pueden resolver diseñando los archivos de la unidad correctamente. El caso más típico es que la unidad A requiere que la unidad B esté funcionando antes de que se inicie A. En ese caso, agregue Requerimientos B y Después B a la sección Unidad de A. Si la dependencia es opcional, añade Wants B y After B en su lugar. Tenga en cuenta que Wants y Requires no implican After. Lo que significa que si después no se especifica, las dos unidades se iniciará en paralelo. Las dependencias se colocan normalmente en los servicios y no en los objetivos. Por ejemplo, network.target es jalado por cualquier servicio que configura sus interfaces de red, por lo tanto, el pedido de su unidad personalizada después de que sea suficiente ya que network.target se inicia de todos modos. Tipos de servicio Hay varios tipos diferentes de inicio a considerar cuando se escribe un archivo de servicio personalizado. Esto se establece con el parámetro Type en la sección Service: Typesimple (predeterminado): systemd considera que el servicio se iniciará inmediatamente. El proceso no debe forzar. No utilice este tipo si otros servicios necesitan ser ordenados en este servicio, a menos que esté enchufado activado. Tipoforking. Systemd considera que el servicio se inició una vez que el proceso se ha bifurcado y el padre ha salido. Para demonios clásicos utilizar este tipo a menos que sepa que no es necesario. También debe especificar PIDFile para que systemd pueda realizar un seguimiento del proceso principal. Tipo de disparo. Esto es útil para scripts que realizan un solo trabajo y luego salen. Es posible que desee establecer RemainAfterExityes así para que systemd todavía considera el servicio como activo después de que el proceso ha salido. Typenotify. Idéntico a Typesimple. Pero con la estipulación de que el daemon enviará una señal a systemd cuando esté listo. La implementación de referencia para esta notificación la proporciona libsystemd-daemon.so. Typedbus. El servicio se considera listo cuando aparece el BusName especificado en el bus de sistema DBuss. Typeidle. Systemd retrasará la ejecución del binario de servicio hasta que se envíen todos los trabajos. Aparte de ese comportamiento es muy similar a Tiposimple. Consulte la página man systemd.service (5) para obtener una explicación más detallada de los valores Type. Edición de unidades proporcionadas Para evitar conflictos con pacman, los archivos de unidad proporcionados por paquetes no deben ser editados directamente. Existen dos maneras seguras de modificar una unidad sin tocar el archivo original: cree un archivo de unidad nueva que anule la unidad original o cree fragmentos que se aplican encima de la unidad original. Para ambos métodos, debe volver a cargar la unidad después para aplicar los cambios. Esto se puede hacer editando la unidad con systemctl edit (que vuelve a cargar la unidad automáticamente) o recargando todas las unidades con: Tip: Puede usar systemd-delta para ver qué archivos de unidades han sido anulados o ampliados y qué se ha cambiado exactamente . Utilice la unidad systemctl cat para ver el contenido de un archivo de unidad y todos los fragmentos de inserción asociados. El resaltado de sintaxis para archivos de unidad systemd dentro de Vim se puede habilitar instalando vim-systemd. Archivos de unidades de reemplazo Para reemplazar el archivo de unidad / usr / lib / systemd / system / unit. Cree el archivo / etc / systemd / system / unit y vuelva a habilitar la unidad para actualizar los enlaces simbólicos: Esto abre / etc / systemd / system / unit en su editor (copiando la versión instalada si aún no existe) y lo vuelve a cargar automáticamente cuando Terminar de editar. Nota: Pacman no actualiza los archivos de la unidad de reemplazo cuando se actualizan los originales, por lo que este método puede dificultar el mantenimiento del sistema. Por esta razón se recomienda el siguiente enfoque. Archivos pendientes Para crear archivos desplegables para el archivo unitario / usr / lib / systemd / system / unit. Cree el directorio / etc / systemd / system / unit .d / y coloque los archivos .conf allí para anular o agregar nuevas opciones. Systemd analizará estos archivos .conf y los aplicará en la parte superior de la unidad original. La forma más sencilla de hacerlo es ejecutar: Esto abre el archivo / etc / systemd / system / unit .d / override.conf en su editor de texto (creando si es necesario) y vuelve a cargar automáticamente la unidad cuando haya terminado de editar. Ejemplos Por ejemplo, si simplemente desea agregar una dependencia adicional a una unidad, puede crear el siguiente archivo: Como otro ejemplo, para reemplazar la directiva ExecStart por una unidad que no es del tipo oneshot. Cree el siguiente archivo: Tenga en cuenta cómo se debe borrar ExecStart antes de volver a asignar 1. Lo mismo ocurre con cada elemento que se puede especificar varias veces, p. OnCalendar para temporizadores. Un ejemplo más para reiniciar automáticamente un servicio: Objetivos Motivo: Descripción poco clara, contenido copiado (menciona explícitamente Fedora). (Discutir en la charla: SystemdMake la sección Objetivos más claramente) systemd utiliza los blancos que sirven a un propósito similar como runlevels pero actúan un poco diferente. Cada objetivo se nombra en lugar de numerado y está destinado a servir a un propósito específico con la posibilidad de tener múltiples activos al mismo tiempo. Algunos objetivos se implementan heredando todos los servicios de otro objetivo y agregando servicios adicionales al mismo. Existen s de sistema s que imitan los niveles de ejecución comunes de SystemVinit, por lo que todavía puede cambiar de destino s utilizando el conocido comando telinit RUNLEVEL. Obtener los objetivos actuales El siguiente debe utilizarse en systemd en lugar de ejecutar runlevel. Crear destino personalizado Los niveles de ejecución que tenían un significado definido en sysvinit (es decir, 0, 1, 3, 5 y 6) tienen un mapeo 1: 1 con un destino específico del sistema. Desafortunadamente, no hay una buena manera de hacer lo mismo con los niveles de ejecución definidos por el usuario, como 2 y 4. Si usa estos, se sugiere que cree un nuevo destino systemd como / etc / systemd / system / target que Toma uno de los niveles de ejecución existentes como una base (puede mirar /usr/lib/systemd/system/graphical.target como ejemplo), haga un directorio / etc / systemd / system / your target .wants. Y luego enlace simbólico los servicios adicionales de / usr / lib / systemd / system / que desea habilitar. Tabla de objetivos Cambiar el destino actual En los destinos del sistema se exponen a través de las unidades de destino. Puede cambiarlos de esta manera: Esto sólo cambiará el destino actual y no tendrá ningún efecto en el siguiente arranque. Esto es equivalente a comandos como telinit 3 o telinit 5 en Sysvinit. Cambiar el destino predeterminado para arrancar El destino estándar es default.target. Que se asigna de forma predeterminada a graphical.target (que corresponde aproximadamente al antiguo nivel de ejecución 5). Para cambiar el destino predeterminado en el arranque, agregue uno de los siguientes parámetros del kernel a su gestor de arranque: systemd.unitmulti-user.target (que corresponde aproximadamente al antiguo nivel de ejecución 3), systemd.unitrescue.target (que corresponde aproximadamente al Antiguo nivel de ejecución 1). Alternativamente, puede dejar el cargador de arranque solo y cambiar default.target. Esto se puede hacer usando systemctl. Para poder sobreescribir la predeterminada default.target. Use la opción force: El efecto de este comando es enviado por systemctl un enlace simbólico al nuevo destino predeterminado se hace en /etc/systemd/system/default.target. Archivos temporales systemd-tmpfiles crea, elimina y limpia archivos volátiles y temporales y directorios. Lee los archivos de configuración en /etc/tmpfiles.d/ y /usr/lib/tmpfiles.d/ para descubrir qué acciones realizar. Los archivos de configuración del directorio anterior tienen prioridad sobre los del último directorio. Los archivos de configuración se proporcionan generalmente junto con archivos de servicio, y se nombran en el estilo de /usr/lib/tmpfiles.d/programa .conf. Por ejemplo, el demonio Samba espera que el directorio / run / samba exista y que tenga los permisos correctos. Por lo tanto, el paquete de samba viene con esta configuración: Los archivos de configuración también se pueden utilizar para escribir valores en ciertos archivos al arrancar. Por ejemplo, si usó /etc/rc.local para deshabilitar el despertador desde dispositivos USB con echo USBE gt / proc / acpi / wakeup. Puede utilizar el archivo tmp siguiente: Consulte las páginas de manual systemd-tmpfiles (8) y tmpfiles.d (5) para obtener más información. Nota: Es posible que este método no funcione para establecer opciones en / sys ya que el servicio de instalación de systemd-tmpfiles puede ejecutarse antes de cargar los módulos de dispositivo adecuados. En este caso, puede comprobar si el módulo tiene un parámetro para la opción que desea establecer con el módulo modinfo y establecer esta opción con un archivo de configuración en /etc/modprobe.d. De lo contrario, tendrá que escribir una regla udev para establecer el atributo apropiado en cuanto aparezca el dispositivo. Temporizadores Un temporizador es un archivo de configuración de unidad cuyo nombre termina con .timer y codifica información acerca de un temporizador controlado y supervisado por systemd. Para la activación basada en el temporizador. Consulte systemd / Temporizadores. Montaje Dado que systemd es un reemplazo para el System V init, está a cargo de los montajes especificados en / etc / fstab. De hecho, va más allá de las capacidades fstab usuales, implementando opciones especiales de montaje prefijadas con x-systemd. Consulte FstabAutomount con systemd para obtener un ejemplo de montaje automático (montaje a petición) utilizando estas extensiones. Vea 2 para la documentación completa de estas extensiones. Journal systemd tiene su propio sistema de registro llamado la revista, por lo tanto, ejecutar un daemon syslog ya no es necesario. Para leer el registro, utilice: En Arch Linux, el directorio / var / log / journal / es una parte del paquete systemd y el diario (cuando Storage está configurado como auto en /etc/systemd/journald.conf) escribirá A / var / log / journal /. Si usted o algún programa elimina ese directorio, systemd no lo recreará automáticamente y en su lugar escribirá sus registros en / run / systemd / journal de una manera no persistente. Sin embargo, la carpeta se recreará cuando establezca Storagepersistent y ejecute systemctl reinicie systemd-journald (o reinicie). La revista Systemd clasifica los mensajes por nivel de prioridad y facilidad. La clasificación de registro corresponde al protocolo Syslog clásico (RFC 5424). Nivel de prioridad Un código de gravedad syslog (en systemd llamado prioridad) se utiliza para marcar la importancia de un mensaje RFC 5424 Sección 6.2.1. Por lo tanto, las instalaciones útiles para ver: 0,1,3,4,9,10,15. Filtrado de salida journalctl le permite filtrar la salida por campos específicos. Tenga en cuenta que si hay muchos mensajes para mostrar o filtrado de un período de tiempo grande tiene que ser hecho, la salida de este comando se puede retrasar durante bastante tiempo. Sugerencia: Mientras el diario se almacena en un formato binario, el contenido de los mensajes almacenados no se modifica. Esto significa que se puede ver con cadenas. Por ejemplo, para la recuperación en un entorno que no tiene systemd instalado. Ejemplo de comando: Mostrar todos los mensajes de esta inicialización: Sin embargo, a menudo uno está interesado en mensajes no de la corriente, pero desde la inicialización anterior (por ejemplo, si ocurrió un fallo del sistema irrecuperable). Esto es posible a través del parámetro de desplazamiento opcional del indicador -b: journalctl -b -0 muestra los mensajes del arranque actual, journalctl -b -1 del inicio anterior, journalctl -b -2 del segundo anterior y así sucesivamente. Ver man 1 journalctl para una descripción completa, la semántica es mucho más potente. Mostrar todos los mensajes de la fecha (y la hora opcional): Mostrar todos los mensajes desde hace 20 minutos: Siga los nuevos mensajes: Mostrar todos los mensajes de un ejecutable específico: Mostrar todos los mensajes por un proceso específico: Mostrar todos los mensajes por una unidad específica: Mostrar anillo del núcleo Buffer: Mostrar sólo los mensajes de prioridad de error, crítico y alerta También se pueden utilizar números, journalctl -p 3..1. Si se utiliza un solo número / palabra clave, también se incluyen journalctl -p 3 - todos los niveles de prioridad más alta. Muestre el equivalente de auth.log mediante el filtrado en la instalación de syslog: See man 1 journalctl. Hombre 7 systemd.journal-fields. O el blog de Lennarts para más detalles. Sugerencia: De forma predeterminada, journalctl trunca las líneas más largas que el ancho de la pantalla, pero en algunos casos, puede ser mejor activar el ajuste en lugar de truncar. Esto puede controlarse mediante la variable de entorno SYSTEMDLESS. Que contiene las opciones pasadas a menos (el paginador predeterminado) y por defecto a FRSXMK (ver man 1 less y man 1 journalctl para más detalles). Al omitir la opción S, la salida se envolverá en lugar de truncada. Por ejemplo, inicie journalctl de la siguiente manera: Si desea configurar este comportamiento como predeterminado, exporte la variable desde el límite de tamaño de diario. Si el diario es persistente (no volátil), su límite de tamaño se establece en un valor predeterminado de 10 Tamaño del sistema de archivos subyacente, pero limitado a 4 GiB. Por ejemplo, con / var / log / journal / ubicado en una partición de 20 GiB, los datos del diario pueden tardar hasta 2 GiB. En una partición de 50 GiB, tendría un máximo de 4 GiB. El tamaño máximo del diario persistente se puede controlar descomentando y cambiando lo siguiente: También es posible utilizar el mecanismo de sustitución de configuración de fragmentos de inserción en lugar de editar el archivo de configuración global. En este caso, no olvide colocar las anulaciones bajo el encabezado de la Revista: Vea man journald.conf para más información. Limpiar manualmente los archivos de diario Los archivos de diario pueden eliminarse globalmente de / var / log / journal / using, p. Rm O se puede recortar según diversos criterios utilizando journalctl. Ejemplos: Eliminar los archivos de diario archivados hasta que el espacio en disco que usan caiga por debajo de 100M: Haga que todos los archivos de diario no contengan datos anteriores a 2 semanas. Vea journalctl del hombre para más Info. Journald en combinación con syslog La compatibilidad con una implementación de syslog clásica no publicada en journald puede proporcionarse permitiendo que systemd reenvíe todos los mensajes a través de socket / run / systemd / journal / syslog. Para que el daemon syslog funcione con el diario, tiene que enlazarlo a este socket en lugar de / dev / log (anuncio oficial). El archivo journald.conf predeterminado para el reenvío al socket es ForwardToSyslogno para evitar la sobrecarga del sistema, ya que rsyslog o syslog-ng extraen los mensajes del diario por sí mismos. Reenvíe journald a / dev / tty12 Cree un directorio drop-in /etc/systemd/journald.conf.d y cree un archivo fw-tty12.conf en él: Especifique un diario diferente para ver Es posible que sea necesario comprobar los registros De otro sistema que está muerto en el agua, como arrancar desde un sistema vivo para recuperar un sistema de producción. En tal caso, se puede montar el disco en p. Mnt Y especifique la ruta del diario a través de -D / --directory. Como por ejemplo: Consejos y trucos Habilitar unidades instaladas por defecto Razón: Cómo funciona con unidades instanciadas (Discutir en Talk: Systemd) Arch Linux se envía con /usr/lib/systemd/system-preset/99-default.preset que contiene disable. Esto hace que systemctl preset deshabilite todas las unidades de forma predeterminada, de manera que cuando se instala un nuevo paquete, el usuario debe habilitar manualmente la unidad. Si no se desea este comportamiento, simplemente cree un enlace simbólico desde /etc/systemd/system-preset/99-default.preset a / dev / null para anular el archivo de configuración. Esto hará que systemctl preset permita que todas las unidades que se instalen independientemente del tipo de unidad, a menos que se especifique en otro archivo en los directorios de configuración de un sistema. Las unidades de usuario no se ven afectadas. Consulte la página de manual de systemd.preset para obtener más información. Nota: si habilita todas las unidades de forma predeterminada, puede causar problemas con los paquetes que contengan dos o más unidades mutuamente exclusivas. Systemctl preset está diseñado para ser utilizado por distribuciones y spins o administradores de sistemas. En el caso de que se habiliten dos unidades en conflicto, debe especificar explícitamente cuál debe ser deshabilitado en un archivo de configuración preestablecido como se especifica en la página de manual de systemd.preset. Solución de problemas Investigando errores systemd A modo de ejemplo, investigaremos un error con systemd-modules-load service: 1. Permite encontrar los servicios systemd que no se inician: 2. Ok, encontramos un problema con systemd-modules-load service. Queremos saber más: Si el ID de proceso no aparece, solo reinicie el servicio fallido con systemctl restart systemd-modules-load 3. Ahora tenemos el ID de proceso (PID) para investigar este error en profundidad. Introduzca el siguiente comando con la ID de proceso actual (aquí: 15630): 4. Vemos que algunas de las configuraciones del módulo del kernel tienen configuraciones incorrectas. Por lo tanto, echemos un vistazo a estos ajustes en /etc/modules-load.d/. 5. El mensaje de error Error de búsqueda del módulo usblp en el módulo puede estar relacionado con un ajuste incorrecto dentro de blacklist.conf. Permite desactivarla con la inserción de un trailing antes de cada opción que encontramos a través del paso 3: 6. Ahora, trate de iniciar systemd-modules-load. Si tuvo éxito, esto no debería provocar nada. Si ve algún error, vuelva al paso 3 y utilice el nuevo PID para solucionar los errores restantes. Si todo está bien, puede verificar que el servicio se inició correctamente con: A menudo, puede resolver este tipo de problemas como se muestra arriba. Para más información, consulte Diagnosticar problemas de arranque. Diagnóstico de problemas de arranque systemd tiene varias opciones para diagnosticar problemas con el proceso de arranque. Consulte la depuración de arranque y la documentación de depuración del sistema. Diagnóstico de problemas con un servicio específico Motivo: Esto puede no captar todos los errores como las bibliotecas que faltan. (Discutir en User talk: AlucrydPlex) Si algún servicio del sistema se comporta de forma incorrecta y desea obtener más información sobre lo que está pasando, establezca la variable de entorno SYSTEMDLOGLEVEL para depurar. Por ejemplo, para ejecutar el daemon systemd-networkd en modo de depuración: O, de forma equivalente, modifique temporalmente el archivo de servicio para reunir suficiente salida. Por ejemplo: Si la información de depuración es necesaria a largo plazo, agregue la variable de forma regular. Apagar / reiniciar toma terriblemente largo Si el proceso de apagado toma un tiempo muy largo (o parece que se congela) lo más probable es que un servicio sin salir es la culpa. Systemd espera un tiempo para que cada servicio salga antes de intentar matarlo. Para saber si está afectado, consulte este artículo. Los procesos de corta duración no parecen registrar ninguna salida Si journalctl -u foounit no muestra ninguna salida para un servicio de corta duración, observe el PID en su lugar. Por ejemplo, si systemd-modules-load.service falla y systemctl status systemd-modules-load muestra que se ejecutó como PID 123, es posible que pueda ver la salida en el diario para ese PID, es decir, journalctl -b PID61123. Los campos de metadatos para la publicación como SYSTEMDUNIT y COMM se recopilan de forma asíncrona y dependen del directorio / proc para el proceso existente. Para corregir esto se requiere corregir el kernel para proporcionar estos datos a través de una conexión de socket, similar a SCMCREDENTIALS. El tiempo de arranque aumenta con el tiempo Después de usar systemd-analyze, un número de usuarios ha notado que su tiempo de arranque ha aumentado significativamente en comparación con lo que solía ser. Después de usar systemd-analyze blame NetworkManager está siendo reportado como tomar una cantidad inusualmente grande de tiempo para comenzar. El problema para algunos usuarios se ha debido a que / var / log / journal se ha vuelto demasiado grande. Esto puede tener otros impactos en el rendimiento, como en el caso de systemctl status o journalctl. Como tal, la solución es eliminar todos los archivos dentro de la carpeta (lo ideal es hacer una copia de seguridad en algún lugar, al menos temporalmente) y luego establecer un límite de tamaño de archivo de diario como se describe en el límite de tamaño de diario. Systemd-tmpfiles-setup.service no arranca al arrancar Empezando con systemd 219, /usr/lib/tmpfiles.d/systemd.conf especifica los atributos ACL para los directorios en / var / log / journal y, por lo tanto, requiere soporte de ACL para ser Habilitado para el sistema de archivos en el que reside la revista. Consulte Listas de control de acceso Activa ACL para obtener instrucciones sobre cómo habilitar ACL en el sistema de archivos que contiene / var / log / journal. Systemctl enable falla para enlaces simbólicos en / etc / systemd / system Si / etc / systemd / system / foo .service es un enlace simbólico y systemctl habilita foo .service se ejecuta, fallará con este error: Esta es una opción de diseño de systemd. Como solución, la habilitación de la ruta absoluta funciona: los servicios dependientes no se inician al iniciar un servicio manualmente Un ejemplo (en) famoso es libvirtd.service que necesita que virtlogd.socket funcione correctamente. Las dependencias en /usr/lib/systemd/system/libvirtd.service se definen como Esto sólo define los sockets necesarios / dependientes para habilitar los servicios (es decir, como autostart), también - pero no los inicia cuando el DISABLED (no autostarting ) El servicio se inicia manualmente Ejecutando systemctl start libvirtd Así que la manera correcta () de iniciar manualmente un servicio con subservicios dependientes una vez (en vez de en cada inicio del sistema) es probablemente la versión systemd impresa en arranque no es lo mismo que la versión instalada del paquete Necesita regenerar su Initramfs y las versiones deben coincidir. Sugerencia: Un gancho pacman puede usarse para regenerar automáticamente el initramfs cada vez que systemd sea actualizado. Vea este hilo del foro y PacmanHooks. Véase tambiénEn: HOWTO: systemd systemd es un System and Service Manager para Linux, compatible con scripts de inicialización SysV y LSB. Systemd ofrece capacidades agresivas de paralelización, utiliza la activación de socket y D-Bus para iniciar servicios, ofrece inicio on-demand de daemons, realiza un seguimiento de procesos usando grupos de control de Linux, soporta snapshotting y restauración del estado del sistema Una lógica de control de servicios basada en la dependencia transaccional elaborada. Contenido systemctl use the basics Verificando Bootup Como muchos de ustedes saben, systemd es el nuevo sistema init. Tradicionalmente, cuando se inicia un sistema Linux, se ven muchos mensajes pequeños pasando por la pantalla, si se muestran en absoluto, dado que utilizamos la tecnología gráfica boot splash como En: Plymouth en estos días. No obstante, la información de las pantallas de arranque era y sigue siendo muy relevante, ya que muestra para cada servicio que se está iniciando como parte del arranque, si se ha iniciado correctamente o fallado (con los indicadores verde o rojo OK o FAILED) . Systemd tiene una función que rastrea y recuerda para cada servicio si se inició correctamente, si salió con un código de salida distinto de cero, si expiró o si terminó anormalmente (segfaulting o similar), tanto durante el inicio y Tiempo de ejecución. Simplemente tecleando systemctl en su shell, puede consultar el estado de todos los servicios, tanto sistemas nativos como SysV / LSB: Mire la columna ACTIVE, que le muestra el estado de alto nivel de un servicio, si está activo ), Inactivo (es decir, no en funcionamiento) o en cualquier otro estado. Si miras de cerca, verás un elemento de la lista que está marcado como mantenimiento y resaltado en rojo. Esto le informa acerca de un servicio que falló al ejecutar o de lo contrario encontró un problema. En este caso, esto es ntpd. Ahora, vamos a averiguar lo que realmente sucedió a ntpd, con el comando systemctl status: Esto nos muestra que NTP terminó durante el tiempo de ejecución (cuando se ejecutó como PID 953), y nos dice exactamente la condición de error: Killing Services Matar a un daemon de sistema es fácil , A la derecha o es seguro, siempre y cuando su demonio persiste sólo de un solo proceso esto podría ser algo cierto. Escribe killall rsyslogd y el daemon syslog se ha ido. Pero aquí viene systemd al rescate: Con systemctl matar fácilmente puede enviar una señal a todos los procesos de un servicio. Ejemplo: Esto garantizará que SIGTERM se entregue a todos los procesos del servicio crond, no sólo el proceso principal. Por supuesto, también puede enviar una señal diferente si lo desea. Por ejemplo, si usted es malo-culo usted puede ser que desee ir para SIGKILL de inmediato: Y allí usted va, el servicio será brutalmente matado en su totalidad, sin importar cuántas veces él bifurcó, si intentó escapar supervisión por el doble Bifurcación o tenedor. A veces todo lo que necesitas es enviar una señal específica al proceso principal de un servicio, tal vez porque quieres activar una recarga a través de SIGHUP. En lugar de ir a través del archivo PID, heres una manera más fácil de hacer esto: ¿Cómo se relaciona esto con systemctl stop kill va directamente y envía una señal a cada proceso en el grupo, sin embargo stop pasa a través de la forma oficial configurado para cerrar un servicio , Es decir, invoca el comando stop configurado con ExecStop en el archivo de servicio. Por lo general, dejar de ser suficiente. Matar es la versión más dura. Detener, desactivar o enmascarar un servicio. Los Tres Niveles de Apagado En systemd, hay tres niveles de apagar un servicio (u otra unidad). Echemos un vistazo a cuáles son: 1, Puede detener un servicio. Que simplemente termina la instancia en ejecución del servicio y hace poco más. 2, Usted puede inhabilitar un servicio. Esto desengancha un servicio de sus activadores de activación. Eso significa que, dependiendo de su servicio, ya no se activará en el arranque, mediante la activación de zócalo o bus o por enchufe de hardware (o cualquier otro disparo que se aplique a él). Sin embargo, todavía puede iniciar manualmente si lo desea. Si ya hay una instancia iniciada la inhabilitación de un servicio no tendrá el efecto de deshabilitar un servicio es un cambio permanente hasta que lo deshaga, se mantendrá, incluso a través de reinicios. 3, Puede enmascarar un servicio. Esto es como desactivar un servicio, pero en los esteroides. No sólo se asegura de que el servicio no se inicia automáticamente más, sino que incluso se asegura de que un servicio ni siquiera se puede iniciar manualmente más. Esto es un poco de una característica oculta en systemd, ya que no es comúnmente útil y puede ser confuso el usuario. Pero heres cómo lo haces: Al vincular un archivo de servicio a / dev / null le dice a systemd que nunca inicie el servicio en cuestión y bloquee completamente su ejecución. Los archivos de unidades almacenados en / etc / systemd / system anulan los de / usr / lib / systemd / system que llevan el mismo nombre. The former directory is administrator territory, the latter terroritory of your package manager. By installing your symlink in /etc/systemd/system/ntpd.service you make sure that systemd will never read the upstream shipped service file advanced Which Service Owns Which Processes In systemd every process that is spawned is placed in a control group named after its service. Control groups (or cgroups) are simply groups of processes that can be arranged in a hierarchy and labelled individually. When processes spawn other processes, these children-processes are automatically made members of the parents cgroup. Cgroups can be used as an effective way to label processes after the service they belong to and be sure that the service cannot escape from the label, Regardless how often it forks or renames itself. Here i discuss two commands you may use to relate systemd services and processes. ps and systemd-cgls ps In the third column you see the cgroup systemd assigned to each process. If you want, you can set the shell alias psc ( /,bashrc) to the ps command line shown above: systemd-cgls Another way to present the same information is the systemd-cgls tool which is shipped with systemd. As you can see, this command shows the processes by their cgroup, as systemd labels the cgroups after the services. If you look closely you will notice that a number of processes have been assigned to the cgroup /user. systemd does not only maintains services in cgroups, but user session processes as well. journalctl usage the basics lets start with some basics. To access the logs of the journal use the journalctl tool. To have a first look at the logs, just type in: If you run this as root you will see all logs generated on the system, from system components the same way as for logged in users. The output you will get looks like a pixel-perfect copy of the traditional /var/log/messages format, but actually has a couple of improvements over it: Lines of error priority (and higher) will be highlighted red. Lines of notice/warning priority will be highlighted bold. The timestamps are converted into your local time-zone. The output is auto-paged with your pager of choice (defaults to less). This will show all available data, including rotated logs. Access Control Browsing logs this way is already pretty nice. But requiring to be root sucks of course, even administrators tend to do most of their work as unprivileged users these days. By default, Journal users can only watch their own logs, unless they are root or in the adm group. To make watching system logs more fun, you could add yourselve to adm: After logging out and back in as yourusername you have access to the full journal of the system and all users: Live View If invoked without parameters journalctl will show you the current log database. Sometimes one needs to watch logs as they grow, where one previously used tail -f /var/log/messages: Yes, this does exactly what you expect it to do: it will show you the last ten logs lines, and then wait for changes and show them as they take place. Basic Filtering When invoking journalctl without parameters youll see the whole set of logs, beginning with the oldest message stored. That of course, can be a lot of data. Much more useful is just viewing the logs of the current boot: This will show you only the logs of the current boot, with all the gimmicks mentioned. But sometimes even this is way too much data to process. So lets just listing all the real issues to care about: all messages of priority levels ERRORS and worse, from the current boot: But, if you reboot only seldom the -b makes little sense, filtering based on time is much more useful: And there you go, all log messages from the day before at 00:00 in the morning until right now. Awesome Of course, we can combine this with -p err or a similar match. But suppose, we are looking for something that happened on the 15th of October, or was it the 16th And there we go, we found what we were looking for. But i noticed that some CGI script in Apache was acting up earlier today, lets see what Apache logged at that time: There we found it. But. wasnt there an issue with that disk /dev/sdc Lets figure out what was going on there: Ouch160 a disk error Hmm, maybe quickly replace the disk before we lose data. Espere. didnt I see that the vpnc binary was nagging Lets check for that: I dont get this, this seems to be some weird interaction with dhclient, lets see both outputs, interleaved: As you can see here with the given examples, Journalctl is a pretty advanced tool, than can track down pretty much anything. But were not done yet. Journalctl has some more to offer, which will be showed in the section Advanced Usage. advanced disable Pageing You can change and disable paging using the SYSTEMDPAGER environment variable. You may end up with truncated lines, if you set it to or cat as suggested in the manual. Try this: /.bashrc or /etc/profile.d/ to make it permanent. Advanced Filtering Internally systemd stores each log entry with a set of implicit meta data. This meta data looks a lot like an environment block, but actually is a bit more powerful. This implicit meta data is collected for each and every log message, without user intervention. The data will be there, and wait to be used by you. Lets see how this looks: (I cut out a lot here, I dont want to make this story overly long. Without the -n parameter it shows you the last 10 log entries, but I cut out all but the last.) With the -o verbose switch we enabled verbose output. Instead of showing a pixel-perfect copy of classic /var/log/messages that only includes a minimimal subset of what is available, we now see all the details the journal has about each entry, but its highly interesting: there is user credential information. Now, as it turns out the journal database is indexed by all of these fields, out-of-the-box Lets try this out: And there you go, this will show all log messages logged from Linux user ID 70. As it turns out you can easily combine these matches: Specifying two matches for the same field will result in a logical OR combination of the matches. All entries matching either will be shown, i.e. all messages from either UID 70 or 71 If you specify two matches for different field names, they will be combined with a logical AND. All entries matching both will be shown now, meaning that all messages from processes named avahi-daemon and host bwg-inc. But of course, thats not fancy enough for us. We must go deeper: The is an explicit OR you can use in addition to the implied OR when you match the same field twice. The line above means: show me everything from host bwg-inc with UID 70, or of host epsilon with a process name of avahi-daemon. And now it becomes Magic Who can remember all those values a field can take in the journal, I mean, who has that kind of photographic memory Well, the journal has: This will show us all values the field SYSTEMDUNIT takes in the database, or in other words: the names of all systemd services which ever logged into the journal. This makes it super-easy to build nice matches. systemd timers systemd is capable of taking on a significant subset of the functionality of Cron through built-in support for calendar time events as well as monotonic time events. While we previously used Cron, systemd also provides a good structure to set up Cron- Running a single script Lets say you have a script /usr/local/bin/myscript that you want to run every hour. First, create a service file, and put it in /etc/systemd/system/ with the following content: Note that it is important to set the Type variable to be simple, not oneshot. Using oneshot makes it so that the script will be run the first time, and then systemd thinks that you dont want to run it again, and will turn off the timer we make next. Next, create a timer file, and put it also in the same directory as the service file above. with the following content: Rather than starting / enabling the service file, you use the timer. and enable it with each boot: Running Multiple Scripts on the Same Timer Now lets say there are a bunch of scripts you want to run, all at the same time. In this case, you will want make a couple changes on the above formula. Create the service files to run your scripts as showed previously, but include the following section at the end of each service file: If there is any ordering dependency in your service files, be sure you specify it with the Aftersomething.service and/or Beforewhatever.service parameters within the You only need a single timer file. Create mytimer.timer, as outlined above. You can create the target that all these scripts depend upon. with the following content: You need to enable each of the service files, as well as the timer: Hourly, daily and weekly events One strategy which can be used for creating this functionality is through timers which call in targets. All services which need to be run hourly can be called in as dependencies of these targets. First, the creation of a few directories is required: The following files will need to be created in the paths specified in order for this to work. with its content: with its content: timedatectl - - Control the system time and date. localectl - - Control the system locale and keyboard layout settings analyzing and performance debugging systemd for Administrators documentation for developers SysVinit to systemd cheatcheet systemd -index - List of all manpages from the systemd projectThe main source of ideological disagreement between pro-systemd and anti-systemd users is just how much an init should handle. Anti-systemd side insists on init being just an init and not exceeding its duties, whereas pro-systemd are willing to make the init handle various other functions, due to the alleged benefits. I think at this point itx27s erroneous to call systemd an quotinit system,quot itx27s far more than that and Lennart himself freely admits it in (ironically) the article meant to dispel systemd myths (http:x2Fx2F0pointer.dex2Fblogx2Fprojectsx2Fthe-biggest-myths.html ): Well, systemd certainly covers more ground that it used to. Itx27s not just an init system anymore, but the basic userspace building block to build an OS from, but we carefully make sure to keep most of the features optional. You can turn a lot off at compile time, and even more at runtime. Thus you can choose freely how much feature creeping you want. Ix27m not entirely sure about how optional the whole package really is. I know for a fact LXC tools like systemd-nspawn, Python bindings, etc. can be removed from the build using .x2Fconfigure, but I donx27t know the full extent to judge the veracity of his claims. Olav Vitters of GNOME and Debian (I believe) later echoes the same sentiment in a somewhat self-contradictory manner: http:x2Fx2Flwn.netx2FArticlesx2F575790x2F Systemd is meant to do one thing and do it well: be the basic building block for Linux. Of course, one must first define what a quotbasic building block for Linuxquot is, although that isnx27t really elaborated. Personally, I donx27t have any strong opinions in favor of or against systemd, but I do feel it was introduced in a rather rushed manner. I think it would have payed off better for the community if people researched certain alternate init schemes that were already present before systemd (not talking about launchdx2FUpstart), such as Richard Lightmanx27s depinit: https:x2Fx2Fweb.archive.orgx2Fwebx2F20050206182736x2Fhttp:x2Fx2Fnezumi. However, itx27s probably a bit late by now, since systemdx27s place has been set in stone, for better or for worse. I developed an (unjust) animosity for systemd when a pacman -Syu installed it and broke my Arch system (which relied on a small password-prompt initscript written by me that I had completely forgotten about) but when I took a fresh look it didnx27t look bad. I have only a year of so of real GNUx2FLinux experience so take this with a grain of salt, but I think that even if systemdx27s got problems, theyx27re not related to it being too monolithic. And although I havenx27t really measured, my ancient Atom-based MSI netbook seems to boot way faster than with initscripts. TLDNR version: systemd breaks the one thing that makes Linux great, itx27s modularity and ability to swap out individual components with separate discrete implementations. I agree with your points, though am disappointed by this reality. Ix27ve been aware of daemontools for some years, but only recently read over the design (which I find quite brilliant) and began using an implementation (s6 at the monent 1). I know you werenx27t arguing against daemontools, but just wanted to share some thoughts: gt Service directories make sense, but they tend to be shell scripts all the way down This is true, but what are you doing in your quotrunquot script that is so complex Also, any executable will suffice. s6 provides x27execlinex27 2 which simplifies some use cases (and complicates others. ) gt Logging is quite different and non-centralized Arguably a feature. Ix27m quite enjoying the quotlogging chainquot where every service logs to stderr which either goes to its specific logger process or bubbles up to that of the parent process. The typical usage of syslog is to collect all log messages in a centralized inbox and then (by some pattern matching log messages must contain enough to be categorized) split them up again and write them to separate files. Skip all that with logger-per-service. gt Services need to be set not to fork and do their own daemon management. Clearly a feature. There is no need for the redundancy of multiple, error-prone implementations of daemonization routines in every service. Also, language nitpick, itx27s not that a service canx27t fork. For example, daemontools can happily supervise a Unicorn master process that will fork off its own workers. The service must not background itself by severing ties with its parent (which involves forking of course). But there are downsides and quirks as you say. Two examples: If you really want something like Nginx or Unicorn to be able to restart without dropping http connections (e.g. forkexec new master process, gracefully shutdown and kill old master process), then you will run into issues. Itx27s possible to hackishly wrap this in a helper script. Daemontools would supervise the helper, which would in turn manage nginx via plain old racy PID files, just like init.d scripts. Ix27m only familiar with daemontools and s6, but they assume TERM is the signal to use to stop a service, and donx27t provide configuration to send, say, QUIT which Unicorn interprets as quotgraceful shutdownquot. (Upstart also did not allow this until fairly recent versions.) Itx27s one thing to get a service to not daemonize itself. Itx27s another thing to expect upstream to modify its signal handling. The vast majority of distros seem to agree that standardization is a good thing in the switch to systemd. If you donx27t want to be standardized maintain it yourself, see: GoboLinux. But modularity of Linux doesnx27t seem to be going anywhere. Contrary to what the author says, systemd is not monolithic but rather consists of protocols and multiple daemons outside of PID1. There doesnx27t seem to be any plans to stop one from using anything other than systemd on say Debian either. As far as I know the only hard requirement for systemd (really logind) is with Gnome on Wayland for user seats, because Consolekit is dead. Gnome seems to be willing to work with the BSDs et al who have no plans to switch to systemd. It consists of multiple daemons which are relied on by userland applications, are so strongly interdependent that the systemd developers donx27t support running them independently, and which have no stable or documented APIs between the different components. Oh, and many of them are infeasable to re-implement according to said developers. Now, the Gnome developers may argue that technically Gnome doesnx27t require logind, and technically theyx27re right. You lose the ability to shutdown, restart, sleep or hibernate your PC from the Gnome user interface - all things that worked before and that normal users expect to be able to do - but you can technically run without it. The API for those things isnx27t itself terribly complicated, but because the systemd and Gnome developers donx27t give a fuck about anything other than systemd theyx27ve bundled it together with a whole bunch of complicated, poorly-documented multiseat stuff that can only be implemented as one single, monolithic all-or-nothing API. Which is, I think, part of the reason why Ubuntu gave up and is switching to systemd they can hardly ship something that requires users to use the command line to shutdown or suspend their PC. Edit: Also, the bit about how quotwe specifically approved some patches to allow Canonical to run logind without systemdquot is. well, outdated is probably the politest way to put it. Since then the systemd developers have announced that theyx27re breaking the ability to run logind seperately in future, they never supported it in the first place, and Ubuntu should never have done it. The problem is that while systemd is superficially a bunch of different commands, they are a clinking, clanking mess of poorly documented programs that do their job worse than the programs they replace. For a moment, letx27s look at one of these components, systemd-backlight, and itx27s terribly written manual page, http:x2Fx2Ffreedesktop.orgx2Fsoftwarex2Fsystemdx2Fmanx2Fsystemd-back. . Okay, so what return values can you expect Where on the filesystem does it store the saved values so you can debug if things do go cactus Why does it always overwrite the value at shutdown These are all things that a reasonable program either should not do, or should document why and where they put things. Systemd just is not a responsible, well-engineered project. Furtnermore, the only real reason consolekit is dead is because Lennart again shows a complete lack of responsibility as a developer with that project. Hex27d rather shove everyone towards his new baby of systemd than to do a responsible hand-off. This is furthered in his inability to document the interfaces used so that people can write compatible software, so that people can debug software, and so that people can maintain things if he ever gets hit by the number eight bus going downtown. Itx27s just not a good way to run things, period. gt Where on the filesystem does it store the saved values so you can debug if things do go cactus Quoting the page you linked to: quotOn disk, the backlight brightness is stored in x2Fvarx2Flibx2Fsystemdx2Fbacklightx2F.quot I missed it. I guess Ix27ve gotten spoiled by BSD manual pages that have file locations in a subsection labelled Files instead of stuck in the description. At the same time, it gives a directory location, instead of an actual filename, which lends one to believe that the actual name and location will be subject to change without notice, as well as the contents of the file, format, etc. I still sorta look at systemd as a solution looking for a problem. System V style init is just x27good enoughx27 for most applications - and if there is anything Ix27ve found in my time, the only people more adverse to change then telecom folks are Unix system administrators. Could someone with more knowledge about the subject explain why launchd was never taken up outside of OS X Ix27m not an admin by any stretch of the imagination, but it seems to fit the bill fairly well, and Ix27ve always wondered why it has not been ported elsewhere. Replying to the article: gt The first issue is that Linux has always been a commodity white box OS built from interchangeable parts available from multiple sources, just like the PC. Systemd goes out of its way to break that, and in doing so represents an enormous loss of flexibility. systemd goes out of its way to fix the massive integration failures wex27ve had for decades (and seen as almost unfixable) because Linux is so focused on modularity to a fault. And because of systemd, wex27re finally starting to get a level of integration that previously only appeared in proprietary operating systems. http:x2Fx2Fislinuxaboutchoicex2F Linux is good at evolutionary changes, but not nearly as good at escaping local maxima via large-scale cross-project changes. Not least of which because anyone attempting to make such changes has to be prepared for the anti-change quotbut the UNIX wayquot flames. Every time I see someone railing about the UNIX way, I think of how people flame each other about x2F versus x2Fusr, and how the original motivation for x2Fusr was quotwe ran out of space on x2F, put some of the less critical stuff on the user diskquot. Appeal to tradition is not an argument unless you have a concrete reason why the tradition is better . and I rarely see such reasoning in arguments leveled against systemd. Ix27ve also found that well-articulated and well-founded arguments about problems in systemd donx27t tend to last long, because systemd will fix them. Ix27d encourage people who see a legitimate technical problem with systemd to go discuss it on the systemd mailing list you might be surprised how quickly it gets fixed, if it has substance. gt Linux systems are modular, with multiple implementations of anything important. Feel free to make something better than systemd, document it as extensively as systemd, spend years writing guides to its most compelling features that get people eager to switch, and do as much work as the systemd developers did to help the entire Linux ecosystem adopt it with shockingly few technical problems. Therex27s nothing stopping you you can even leverage the entire systemd codebase in the process. Fork it and change what you donx27t like, if you think you can keep up. Good luck youx27ll need it. gt But systemd isnx27t like that. Itx27s a single all or nothing blob Refuted so many times that anyone still saying this is either intentionally misleading or utterly uninformed about what theyx27re railing against. systemd runs incredibly little in PID 1 it has numerous separate single-purpose processes (typically named x2Fusrx2Fbinx2Fsystemd-foo or x2Flibx2Fsystemdx2Fsystemd-foo), as well as several libraries abstracting out key bits of common functionality for other code to use. gt Ubuntu did upstart, but ubuntu also did unity, and mir, and pointed x2Fbinx2Fsh to dash, and their launchpad is based on the obsolete quotbazaarquot source control system. People not following Ubuntux27s technical lead is pretty deeply justified at this point. Now this one is actually a very well-made point, and itx27s something few people have stated outright. Therex27s a reason that few other distributions switched to upstart while it adds a few key features over sysvinit (such as service supervision), it has some serious deficiencies as well. Itx27s not at all clear that switching from sysvinit to upstart would have been an improvement. And the biggest key feature of upstart, service supervision, is actually something sysvinit already has but nobody uses . you can run a process directly from inittab, and sysvinit will restart it when it exits. But rather than using that, every Linux distribution just uses sysvinit to launch a shell script that launches a hundred other shell scripts. That said, I applaud Ubuntu for actually trying to make major changes to Linux. Unity isnx27t what everyone wants, but itx27s certainly an attempt at a non-incremental improvement over other desktop environments, and it has some nice properties. Similarly, Bazaar was an attempt to do better than CVS and SVN, and itx27s not wildly awful it just lost to an even better system for a variety of reasons (http:x2Fx2Fstationary-traveller.eux2Fpagesx2Fbzr-a-retrospective. ). x2Fbinx2Fsh -gt dash is, while not necessarily inherently better, an attempt to enforce an absence of bashisms in x2Fbinx2Fsh scripts, and an attempt to improve the performance of such scripts in that, it has worked reasonably well. Therex27s no excuse for Mir, though. ) gt Android also has a no GPL in userspace policy Not exactly, though Android certainly pushes back on GPLed code. Theyx27re willing to adopt it when therex27s no viable alternative. But systemd is LGPL these days, not GPL. And even if systemd were GPL, it would still be quite possible to use systemd as an init system to launch proprietary software. Regardless of Androidx27s allergy to copyleft, permissive-versus-copyleft is an ancient holy war that long predates Android. The only reason the argument comes up so strongly in this case is that systemd is the right combination of rapidly developed and too useful to ignore to make it a serious threat to people who donx27t want to use it. If systemd were less useful, or otherwise easier to clone, its copyleft license would be less of a concern to the opponents of copyleft. Thatx27s a feature . and itx27s exactly the kind of thing the authors of the GPL and LGPL had in mind: the existence of high-quality software under copyleft licenses that make life difficult for the proprietary software world. Personally, I was rather disappointed when systemd switched to the LGPL I would have rather seen it remain GPL. gt Those of us waiting to see how it shakes out feel wex27re having systemd shoved down our throats by a development team actively threatened by the idea of people not using their stuff. It couldnx27t possibly be that the software is sufficiently compelling that those without religious objections to it are switching to it to take advantage of its useful features. No, it must be a conspiracy. gt But even if it wanted to, android canx27t easily clone systemd, becuase itx27s (intentionally) a moving target with no standard and no documentation. quotno documentationquot is insultingly misinformed systemd is one of the best documented software products Ix27ve ever seen. And in any case, why should the systemd developers go out of their way to make life easier for people who donx27t want to use systemd . when they could instead spend their time making life better for people who want to use systemd gt We canx27t opt out and see how it goes, we must fight to stay where we are. Sure you can opt out: just sit there doing nothing, and the world will pass you by. Or you can participate, and do as much work as the systemd developers are doing, in favor of your preferred system. What you canx27t do is try to stop other people from doing work you donx27t like without putting at least as much work into a better alternative. Keep up or get out of the way, donx27t shout quotwait upquot or quotno fairquot. gt So, basically youx27re advocating for a walled garden approach You can get integration without a walled garden. There are no walls on the systemd garden therex27s just a well-maintained garden that attracts an increasing number of people. You donx27t need walls to keep people in when you have sufficiently compelling technology that they want to stay. And you didnx27t actually respond to anything in the mailing list post about quotchoicequot, other than its tone. Therex27s a key point to be learned from that post: just because a alternatives exist doesnx27t mean they all have to be equally well supported by every Linux distribution. Linux distributions, as one of their primary functions, make choices for the user: they select a set of components and make those components work well together. systemd helps there, by providing a set of components that integrate quite well, and by getting rid of some of the zero-value differences between distributions (x2Fetcx2Fhostname versus x2Fetcx2FHOSTNAME versus x2Fetcx2Fsysconfigx2F. for instance). gt Or because Linux userland developers have historically been bad at cathedrals The bazaar has always been more suited to the Linux community, and makes Linux distinct and refreshing compared to BSDs (which are an example of cathedral done right, by the way). I actually agree with this, but I donx27t see how itx27s a response to what I said. Linux, in not using the cathedral method, has a hard time making major changes to escape local maxima, and when such changes do happen itx27s typically through the focused efforts of a small group dedicated to fixing a particular class of issues. For instance, the Linux kernel is a bazaar, but major new subsystems are not typically developed collaboratively from scratch . theyx27re provided in a functional initial form and then evolved from there. And when it finally comes time to replace them, theyx27re typically replaced as a unit rather than incrementally evolved. And personally, I wouldnx27t mind seeing Linux distributions learn something about organization from the BSDs, not least of which by requiring that all packages appear in the same version control system side-by-side on the same server. gt If the systemd teamx27s insistence on not taking patches for alternative libcs systemd refuses to work around bugs in other software unless absolutely necessary when that software is FOSS, it can be fixed rather than worked around. And systemd does have some patches to handle less capable libc implementations, such as definitions of system calls that libc implementations might not have. On the other hand, it seems quite reasonable to require functions like asprintf rather than reimplementing them, especially for an init system specifically designed for Linux. gt Lennartx27s circular argument on why you should adopt systemd because of systemd-logind being tightly coupled and hard to reimplement logind needs cgroups. PID 1 needs to manage cgroups. Therex27s a solution that works today, providing features that desktop environments need, for which alternatives do not yet exist. And if youx27re not a fan of that solution, there are people working right now to create an alternative solution using cgmanager. gt the recent Kay Sievers controversy In which kernel developers ranted about a bug in systemd that had already been fixed before the discussion ever started, and proposed childish kernel patches like quotif PID 1 is named systemd, panic()quot. gt the systemd team very much have their own convictions that are at odds with anyone else Per my previous comment: x27Not least of which because anyone attempting to make such changes has to be prepared for the anti-change quotbut the UNIX wayquot flames.x27 Yes, the systemd team is trying to make large-scale changes to the way Linux works. That necessarily puts them at odds with the way Linux currently works. That doesnx27t make them wrong . Linux is not yet perfect and could use further improvement. (It doesnx27t make them inherently right, either.) A few examples, off the top of my head: Socket activation (and related features like bus activation) are one of systemdx27s key improvements to the boot process. Activation avoids the need for explicit dependencies, because you donx27t need to depend on avahi to start using the avahi socket. And because of that, systemd can launch avahi and services using avahi in parallel, by opening the socket for avahi, and letting other services write to that socket before avahi fully starts, only blocking when they go to read from it. You could do that with inetd or similar, but inetd doesnx27t integrate with the init system, so an inetd service canx27t declare any dependencies on other services, and wonx27t get tracked alongside other services (e.g. with systemctl status). So in practice, very few distributions actually launched services from inetd in practice (notable exception: CUPS), while many distributions use systemdx27s socket activation. People care about booting quickly. While mechanisms like bootchart existed before systemd, you had to explicitly boot with them to collect results for analysis, and theyx27d slow down the boot process. With systemd, you can run quotsystemd-analyze blamequot or quotsystemd-analyze critical-chainquot on a production system and see exactly what you need to work on to make the system boot faster. (That was one of the widely lauded features of DTrace: you could safely use it to diagnose production systems.) Then therex27s journaldx27s original reason for existence: quothow can we make x27systemctl statusx27 show the last few lines of log output from a servicequot. How would you do that on an arbitrary system running an arbitrary syslog implementation (For extra bonus difficulty, do so while attempting to track the syslog implementation as a service itself, and avoid deadlocks.) Sure, you could recreate that functionality on a particular system with a particular logging configuration, and there are dozens of systems doing so, not counting the myriad production systems deployed with bespoke solutions for log monitoring. (Even then, most of those systems donx27t correlate a servicex27s log output with that service.) But systemd makes it easy and universal. And that integration extends beyond systemd as well. For instance, if fixing a problem requires adding a new kernel interface, theyx27ll submit a kernel patch, and then have systemd use that new kernel interface, rather than hacking around the problem in systemd and producing a suboptimal solution. quotbooting fasterquot is a desktop concern from 1990. Are there really a bunch of linux users turning on and off their computers constantly and using linux on the desktop Is this really an actual thing Because Ix27d like to introduce these people to (a) real desktop environments maintained by smart people and (b) at the very least, suspend mode. In practice, I see people boot Linux desktops under three conditions: 1. Once in a great long while, perhaps when there was a power outage or a critical system update. 2. Daily, for a few people who shut down their computers when they finish work for the day and boot them in the morning. (I never understood this.) 3. When something has gone quite badly wrong. Outside of that, there are desktops which hibernate, laptops which hibernate, and phones which are running Firefox OS or Android and boot about once a week. If you have a journaling filesystem and no weird hardware, desktop boot times are not a problem. not a huge fan of systemd either, but Ix27m sure that if computers were able to boot in milliseconds then some of those practices would change. Also, itx27s not only about desktop. Autoscaling of virtual on demand servers can greatly benefit of extremely short boot times. Surely you could use a simple and highly optimized boot system in such cases, but why not use the same if it works well. It seems to me that itx27s more about systemd developersx27 attitude than with the actual goals. Perhaps the same goals could be achieved with a more modular approach. The important thing is that distributions (or components that manage the deployment of services, e.g. package managers or custom service management solutions) need a simple yet powerful way to express their requirements. Not sure this requires this level of integration which appears more like a way to force people to use it (or simply because itx27s simpler to approach this problem by throwing away the complex legacy). Given that Unix has been booting successfully, safely, and rapidly for several decades, I would venture to agree that x27the same goals could be achieved with a more modular approach.x27 Which raises the question: why systemd And the answer: desktop linux people, who are already mired in a world of overcomplicated and incomprehensible quarter-engineered freshman-level bullshit like gnome and dbus and pulseaudio and on and on, are sure that their problems are everyonex27s problems. In some cases itx27s because they donx27t know any better, Ix27m sure. But nevertheless, infecting the rest of Linux with the desktop philosophy is an extinction-class mistake. None of the things you mentioned meet criterion (3) in my original question. Therefore, you have not convinced me that there is a need for systemd. gt Socket activation (and related features like bus activation) are one of systemdx27s key improvements to the boot process. etc. You could do that with inetd or similar, but inetd doesnx27t integrate with the init system, so an inetd service canx27t declare any dependencies on other services, and wonx27t get tracked alongside other services (e.g. with systemctl status). This problem can be avoided entirely if you start avahi early and immediately swap it to disk. Then, itx27s not taking up resources when itx27s doing nothing, and the OS swaps it back into RAM automatically when it gets a connection. No need for systemd, or inetd even. The only thing inetd needs to function are (1) networking, and (2) locally-mounted disks (i.e. for reading its config and loading server binaries), so the solution is to start inetd once networking and disks are up (that applies to pretty much any non-trivial service, btw). You shouldnx27t have to tightly-couple inetd to the init system anyway--simply have the program inetd starts be a script that first checks with the init system (which may or may not be systemd) to see if the service can be started, and block (or time out) until the service is ready for inetd to hand off the connection. Again, no explicit need for systemd. gt People care about booting quickly. Get an SSD :) ducks In all seriousness, this doesnx27t qualify as a show-stopping problem on the desktop, since youx27re not rebooting that often anyway (I regularly go 3 months between reboots on my laptop). Moreover, you donx27t need systemd to get fast boot times--itx27s also possible to compile your boot process to minimize Ix2FO (which is the limiting factor of boot speeds). Itx27s not that far-fetched of an idea--Pardus Linux uses (byte-compiled) Python scripts to boot the system, for example, and it gets excellent speed-up 1 (in the benchmark: 15s to get to KDM login on a P4 with a 5400 RPM IDE disk). I can see boot times being a problem in mobile space, but you donx27t need systemd to get fast boots either. Just load up the GUI and log-in prompt once the rootfs is mounted, and then asynchronously start up the rest of the phonex27s internal services once the user has logged in (i.e. and unlocked the SIM card). Chances are, the user is only concerned about boot-time when theyx27re in a hurry, and Ix27m going to take an educated guess that the hurry is caused by the pressing need to dial a number, getx2Fsend a text, or load a map (probably in that order). So, asynchronously start the telephony stack, the SMS daemon, and the location service (in that order) once the user logs in. The telephony stack takes a while to initialize anyway (i.e. to register with the service), so therex27s space to use that time for starting non-essential services asynchronously after log-in. gt Then therex27s journaldx27s original reason for existence: quothow can we make x27systemctl statusx27 show the last few lines of log output from a servicequot See my earlier comment of why integration of orthogonal concerns belongs in a higher layer than systemd. I would (1) set up the daemon to log to its own well-known place, and (2) run quotcat LOG tailquot. I could even store a repository of service configuration x2Fetcx2Fconf.d, where each service has its own file that describes a few common environment variables, like where it logs to. Again, no need for systemd. gt But systemd makes it easy and universal. gt systemd goes out of its way to fix the massive integration failures wex27ve had for decades (and seen as almost unfixable) because Linux is so focused on modularity to a fault. Windows goes out of the way to fix the massive integration failures wex27ve had for decades (and seen as almost unfixable) because Linux is so focused on modularity to a fault. And yet, Linux users donx27t clamor for Windows because of this. This is exactly the attitude the author is arguing against. Reaffirming this without justification doesnx27t make you right. Again, Windows is the operating system for people who donx27t want choice. gt Feel free to make something better than systemd, document it as extensively as systemd, spend years writing guides to its most compelling features that get people eager to switch, and do as much work as the systemd developers did to help the entire Linux ecosystem adopt it with shockingly few technical problems. Therex27s nothing stopping you you can even leverage the entire systemd codebase in the process. Fork it and change what you donx27t like, if you think you can keep up. Good luck youx27ll need it. Honestly, sysvinit and the existing userspace does all I need it to do. The extra benefits systemd offers I can do using existing tools. Need to reliably kill a service Use the cgroups tools and put the service into its own cgroup, and then kill all processes in the cgroup later. Need tamper-evident logging Use the rsyslog tools. Need dependency-based boot insserv has got you covered. Need automatic device-node creation, and the ability to run programs based on device events udev did this just fine before systemd. gt Refuted so many times that anyone still saying this is either intentionally misleading or utterly uninformed about what theyx27re railing against. Systemdx27s components are tightly-coupled. How, pray tell, do I run logind without systemd as PID 1 How, pray tell, do I remove journald Oh, thatx27s right. I canx27t. By design. That makes it monolithic. gt It couldnx27t possibly be that the software is sufficiently compelling that those without religious objections to it are switching to it to take advantage of its useful features. Or, it could be that people now have to choose between having a desktop environment and NOT having systemd. The tight coupling of systemd to layers above it compels its adoption, arguably more so than its merits. By contrast, X.org and Xfree86 (an example from the article) were largely interchangeable. gt Keep up or get out of the way, donx27t shout quotwait upquot or quotno fairquot. Have fun running over the cliff to your new Windows-ix :) gt Honestly, sysvinit and the existing userspace does all I need it to do. The extra benefits systemd offers I can do using existing tools. Need to reliably kill a service Use the cgroups tools and put the service into its own cgroup, and then kill all processes in the cgroup later. Need tamper-evident logging Use the rsyslog tools. Need dependency-based boot insserv has got you covered. Need automatic device-node creation, and the ability to run programs based on device events udev did this just fine before systemd. And yet nothing integrated all those features well enough to get people to widely adopt them. systemd services make it trivial to run a process in its own cgroup, isolate it, log everything about it, activate services as needed, and manage and track services launched in response to devices. Therex27s nothing stopping you from building your own Linux distribution that integrates all of those tools, and there are certainly enough systemd opponents to try. If they build something compelling, people might use it. (Also, insserv doesnx27t come close to the parallel boot that systemd enables, via socket activation, bus activation, and similar. If B and C depend on A, insserv lets you start B and C in parallel, but systemd lets you start A, B, and C in parallel.) gt Systemdx27s components are tightly-coupled. How, pray tell, do I run logind without systemd as PID 1 How, pray tell, do I remove journald Oh, thatx27s right. I canx27t. By design. That makes it monolithic. To run logind without systemd, you can wait for the cgmanager folks to provide an implementation of equivalent cgroup management functionality for logind to use. Until then, your complaint is much like the complaints about systemd not running on Linux: Linux has features other OSes donx27t, and systemd intentionally takes advantage of them, quotby designquot. Does that make the combination of systemd and the Linux kernel quotmonolithicquot This is quotby designquot in much the same way that a program using features from Python 2.7 that donx27t work in Python 2.6 does so quotby designquot. And itx27s perfectly reasonable for a project to refuse patches for compatibility with Python 2.6 and say quotupgrade to 2.7quot. Just like itx27s perfectly reasonable for some projects to say quotrun Linuxquot or quotrun systemdquot, because it has features that nothing else does. gt By contrast, X.org and Xfree86 (an example from the article) were largely interchangeable. They were in the start, when X.org initially forked from the XFree86 codebase. But today, you cannot drop XFree86 underneath a modern desktop environment and expect it to work itx27ll complain about the myriad X extensions introduced in X.org to make those desktop environments possible. And yet, nobody noticed, because nobody cares about XFree86 anymore. gt And yet nothing integrated all those features well enough to get people to widely adopt them. I guess Ix27m an outlier these days in that I learned how to do all these things before systemd existed (and donx27t need any further integration than a shell), but I take your point on making it easier for less experienced people to do them. Everyone has their own desired level of integration. However, systemd is arguably the wrong way to do this--itx27s too low in the stack to have the best impact. Cross-component and cross-system integration should happen in as high a layer as possible--systems in higher layers have more knowledge about the global state of the system, and thus are in a better position to know how to orchestrate them (i.e. the end-to-end argument). A better strategy to control daemons in response to user, daemon, and system events would be to implement a session daemon that listens for these events, matches them against user-supplied rulesx2Fcallbacks, and then dispatches the apporpriate commands to the other daemons and the system. Desktop environments prior to systemd largely did this, albeit in an ad-hoc desktop-specific fashion. However, we can achieve the same end in a standard way without replacing the plumbing layer or the init system by suppling a suite of adapters with the session daemon that allows it to talk them. This would allow us to develop the session daemon in a piecemeal manner (i.e. gradually add support for more daemons), a modular manner (i.e. you donx27t have to replace existing daemons), a portable manner (i.e. separate the rules and dispatching logic from the daemonx2Fsystem adapters), and a loosely-coupled manner (i.e. itx27s designed to interoperate from the get-go). A desktop environment could depend on this session daemon, but the session daemon does not have to depend on an init system, or a kernel, or an IPC mechanism (like DBus). gt Also, insserv doesnx27t come close to the parallel boot that systemd enables, via socket activation, bus activation, and similar. Of course not :) Itx27s inetdx2Fxinetdx27s job to do socket-based activation, not insservx27s. Ix27m not sure why I need systemd to do bus-activation if I needed bus-activation (and I donx27t, but could in the future), I would just modify inetdx2Fxinetd to listen on a well-known DBus address instead of (or in addition to) a well-known port. gt To run logind without systemd, you can wait for the cgmanager folks to provide an implementation of equivalent cgroup management functionality for logind to use. To run e.g. a GNOME session, I need logind. To run logind, I need systemd. It doesnx27t need to be this way. This cross-layer coupling is a step backwards from a usability standpoint--users that do not or (in my case) cannot run systemd are now locked out of using GNOME. As mentioned below, this is the equivalent of having a widely-used web page go from running in any web browser to running in only Internet Explorer. Sure, itx27s the web developerx27s choice to do so, but itx27s not something youx27d be happy about if you donx27t use Internet Explorer. gt Does that make the combination of systemd and the Linux kernel quotmonolithicquot I think youx27re confusing quotnon-portablequot with quotmonolithic.quot A system is monolithic if its internal parts are tightly-coupled--I canx27t use part A without also using part B (i.e. logind with systemd-PID-1). Note that a monolithic system can also be modular the Linux kernel being an illustrative example. Similarly, software can be loosely-coupled (non-monolithic) but non-portable as well: I canx27t run GNU coreutils on Palm OS, for example. I do not expect systemd (or any service management system) to be portable. However, I do expect its components to be as loosely-coupled as possible (and prior to systemd, this was the case), and I do expect that other systems that address orthogonal concerns not be coupled to it. Loose coupling between components that address orthogonal concerns is simply good design--you donx27t replace your steering wheel in your car when you replace your tires, for example.
Lista de nombres de empresas Forex
Opciones de compra de acciones en línea