{"id":840,"date":"2024-01-20T00:42:26","date_gmt":"2024-01-20T05:42:26","guid":{"rendered":"https:\/\/80bits.blog\/?p=840"},"modified":"2024-01-20T00:42:27","modified_gmt":"2024-01-20T05:42:27","slug":"systemd-crear-un-archivo-de-servicio-systemd","status":"publish","type":"post","link":"https:\/\/80bits.blog\/index.php\/2024\/01\/20\/systemd-crear-un-archivo-de-servicio-systemd\/","title":{"rendered":"Systemd &#8211; Crear un archivo de servicio systemd"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"que-es-systemd\">Que es systemd<\/h2>\n\n\n\n<p>Systemd es una herramienta esencial en el mundo de Linux que simplifica la administraci\u00f3n de servicios y procesos en un sistema operativo. Funciona como un sistema de inicio y administraci\u00f3n de servicios, reemplazando los m\u00e9todos tradicionales de inicio como SysVinit.<\/p>\n\n\n\n<p>Con systemd, los administradores de sistemas pueden controlar y gestionar servicios de manera m\u00e1s eficiente, automatizando tareas como el inicio, detenci\u00f3n y reinicio de aplicaciones. Adem\u00e1s, ofrece un registro detallado de eventos, facilitando la identificaci\u00f3n de problemas y la soluci\u00f3n de errores.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"configurar-un-servicio\">Configurar un servicio systemd<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"archivo-de-ejemplo\">Archivo de ejemplo<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;Unit]\nDescription=Descripcion de tu servicio\nAfter=network.target\n\n&#91;Service]\nExecStart=\/path\/to\/service \/\/parametros si se necesitan\nType=simple\nRestart=on-failure\n\n&#91;Install]\nWantedBy=multi-user.target\n<\/code><\/pre>\n\n\n\n<p>El ejemplo anterior es muy simple pero sirve para los prop\u00f3sitos de esta gu\u00eda, <a href=\"https:\/\/systemd.io\/\">si quieres profundizar en systemd te recomiendo esta web.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"pasos\">Pasos<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><p>Crea el archivo de unidad de systemd: Debes crear un archivo con extensi\u00f3n <code>.service<\/code> en el directorio <code>\/etc\/systemd\/system\/<\/code> o en <code>\/lib\/systemd\/system\/<\/code>. Puedes nombrar el archivo como desees, pero generalmente se utiliza una extensi\u00f3n significativa, como <code>mi_servicio.service<\/code>.<\/p>\n<\/li>\n\n\n\n<li><p>Abre el archivo en un editor de texto con permisos de administrador. Puedes usar un editor de texto en la l\u00ednea de comandos como <code>nano<\/code>, <code>vim<\/code>, <code>emacs<\/code>, o cualquier otro editor de tu elecci\u00f3n. Por ejemplo:<\/p>\n<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/systemd\/system\/mi_servicio.service\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li><p>Copia y pega el contenido que proporcionaste en tu pregunta en el archivo que acabas de crear.<\/p>\n<\/li>\n\n\n\n<li><p>Aseg\u00farate de que los siguientes detalles sean correctos en el archivo:<\/p>\n<ul class=\"wp-block-list\">\n<li><code>Description<\/code>: Proporciona una descripci\u00f3n significativa de tu servicio.<\/li>\n\n\n\n<li><code>ExecStart<\/code>: Debes especificar la ruta completa del ejecutable que deseas iniciar, seguido de cualquier argumento que requiera tu aplicaci\u00f3n.<\/li>\n\n\n\n<li><code>Type<\/code>: Este campo generalmente se establece en <code>simple<\/code> si tu servicio es de tipo simple.<\/li>\n\n\n\n<li><code>Restart<\/code>: Puedes configurar c\u00f3mo deseas que se reinicie el servicio en caso de fallo. En este caso, se reiniciar\u00e1 en caso de fallo (<code>on-failure<\/code>).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><p>Guarda el archivo y cierra el editor de texto.<\/p>\n<\/li>\n\n\n\n<li><p>Recarga el daemon de systemd para que tome en cuenta los cambios en la configuraci\u00f3n:<\/p>\n<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl daemon-reload\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"7\">\n<li>Inicia el servicio y habil\u00edtalo para que se inicie autom\u00e1ticamente al arrancar el sistema:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl start mi_servicio\nsudo systemctl enable mi_servicio\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"8\">\n<li>Verifica el estado del servicio para asegurarte de que se est\u00e1 ejecutando sin problemas:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status mi_servicio\n<\/code><\/pre>\n\n\n\n<p>Eso es todo. Tu servicio deber\u00eda estar configurado y en funcionamiento. Puedes modificar la configuraci\u00f3n de systemd seg\u00fan sea necesario para tu aplicaci\u00f3n espec\u00edfica.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"notas\">Notas<\/h2>\n\n\n\n<p>Las rutas <code>\/lib\/systemd\/system\/<\/code> y <code>\/etc\/systemd\/system\/<\/code> son dos ubicaciones diferentes donde se pueden encontrar archivos de unidades (unit files) de systemd en sistemas Linux. La principal diferencia entre estas dos ubicaciones radica en su prop\u00f3sito y c\u00f3mo se gestionan los archivos en cada una:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><p><code>\/lib\/systemd\/system\/<\/code>:<\/p>\n<ul class=\"wp-block-list\">\n<li>Prop\u00f3sito: Esta ubicaci\u00f3n generalmente contiene archivos de unidades proporcionados por el sistema operativo o por paquetes de software instalados en el sistema. Estos archivos de unidades son parte de la configuraci\u00f3n predeterminada del sistema y son proporcionados por el proveedor del sistema operativo o por los paquetes de software instalados.<\/li>\n\n\n\n<li>Gesti\u00f3n: Los archivos en esta ubicaci\u00f3n suelen ser de solo lectura y no deben modificarse directamente por los usuarios o administradores del sistema. Cualquier modificaci\u00f3n en esta ubicaci\u00f3n podr\u00eda ser sobrescrita por actualizaciones del sistema operativo o de los paquetes de software.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><p><code>\/etc\/systemd\/system\/<\/code>:<\/p>\n<ul class=\"wp-block-list\">\n<li>Prop\u00f3sito: Esta ubicaci\u00f3n es utilizada para personalizar y administrar los archivos de unidades de systemd en el sistema. Los archivos ubicados aqu\u00ed tienen prioridad sobre los archivos de unidades en <code>\/lib\/systemd\/system\/<\/code>. Puedes colocar tus propios archivos de unidades personalizados o realizar modificaciones en las unidades existentes para adaptarlas a tus necesidades espec\u00edficas.<\/li>\n\n\n\n<li>Gesti\u00f3n: Los archivos en <code>\/etc\/systemd\/system\/<\/code> pueden ser modificados y personalizados por los administradores del sistema. Esto permite a los usuarios adaptar la configuraci\u00f3n de systemd seg\u00fan sus requisitos sin preocuparse de que las modificaciones sean sobrescritas por actualizaciones del sistema.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>En resumen, la principal diferencia entre estas dos ubicaciones es su finalidad y su gesti\u00f3n. <code>\/lib\/systemd\/system\/<\/code> contiene archivos de unidades proporcionados por el sistema operativo y paquetes, mientras que <code>\/etc\/systemd\/system\/<\/code> se utiliza para personalizar y administrar las unidades de systemd de manera que se adapten a las necesidades espec\u00edficas del sistema o del usuario.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Que es systemd Systemd es una herramienta esencial en el mundo de Linux que simplifica la administraci\u00f3n de servicios y procesos en un sistema operativo. Funciona como un sistema de inicio y administraci\u00f3n de servicios, reemplazando los m\u00e9todos tradicionales de inicio como SysVinit. Con systemd, los administradores de sistemas pueden controlar y gestionar servicios de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":842,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[60,66,65],"tags":[58,52,73,93,94],"class_list":["post-840","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-comandos","category-linux","category-sistemas-operativos","tag-comandos","tag-consola","tag-linux","tag-operating-system","tag-sistemas-operativos"],"jetpack_featured_media_url":"https:\/\/80bits.blog\/wp-content\/uploads\/2024\/01\/systemd_character_robotic.png","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/posts\/840","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/comments?post=840"}],"version-history":[{"count":3,"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/posts\/840\/revisions"}],"predecessor-version":[{"id":845,"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/posts\/840\/revisions\/845"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/media\/842"}],"wp:attachment":[{"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/media?parent=840"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/categories?post=840"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/80bits.blog\/index.php\/wp-json\/wp\/v2\/tags?post=840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}