How to change SysVinit service without editing init script?












1















Let assume a service is xyz. In systemd, the /lib/systemd/system/xyz.service
file has this command:



[Service]
ExecStart=/usr/bin/xyz --foo


I want to add --bar option in that command. With systemd, I can add these
following lines in /etc/systemd/system/xyz.service.d/xyz.conf drop-in file:



[Service]
ExecStart=
ExecStart=/usr/bin/xyz --foo --bar


This can override the command after systemctl daemon-reload. I want to this
same in SysVinit but without editing /etc/init.d/xyz file. Is it possible
to add/change command options without editing that SysVinit script? If not then
what is the proper way? I want to change that command option permanently.










share|improve this question



























    1















    Let assume a service is xyz. In systemd, the /lib/systemd/system/xyz.service
    file has this command:



    [Service]
    ExecStart=/usr/bin/xyz --foo


    I want to add --bar option in that command. With systemd, I can add these
    following lines in /etc/systemd/system/xyz.service.d/xyz.conf drop-in file:



    [Service]
    ExecStart=
    ExecStart=/usr/bin/xyz --foo --bar


    This can override the command after systemctl daemon-reload. I want to this
    same in SysVinit but without editing /etc/init.d/xyz file. Is it possible
    to add/change command options without editing that SysVinit script? If not then
    what is the proper way? I want to change that command option permanently.










    share|improve this question

























      1












      1








      1








      Let assume a service is xyz. In systemd, the /lib/systemd/system/xyz.service
      file has this command:



      [Service]
      ExecStart=/usr/bin/xyz --foo


      I want to add --bar option in that command. With systemd, I can add these
      following lines in /etc/systemd/system/xyz.service.d/xyz.conf drop-in file:



      [Service]
      ExecStart=
      ExecStart=/usr/bin/xyz --foo --bar


      This can override the command after systemctl daemon-reload. I want to this
      same in SysVinit but without editing /etc/init.d/xyz file. Is it possible
      to add/change command options without editing that SysVinit script? If not then
      what is the proper way? I want to change that command option permanently.










      share|improve this question














      Let assume a service is xyz. In systemd, the /lib/systemd/system/xyz.service
      file has this command:



      [Service]
      ExecStart=/usr/bin/xyz --foo


      I want to add --bar option in that command. With systemd, I can add these
      following lines in /etc/systemd/system/xyz.service.d/xyz.conf drop-in file:



      [Service]
      ExecStart=
      ExecStart=/usr/bin/xyz --foo --bar


      This can override the command after systemctl daemon-reload. I want to this
      same in SysVinit but without editing /etc/init.d/xyz file. Is it possible
      to add/change command options without editing that SysVinit script? If not then
      what is the proper way? I want to change that command option permanently.







      linux sysvinit






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 6 hours ago









      BiswapriyoBiswapriyo

      1106




      1106






















          1 Answer
          1






          active

          oldest

          votes


















          2














          On systems that still rely on SysVInit, you need to know what is the mechanism that your specific distribution adopts. Since you can source any file inside your daemon scripts, it's up to the distribution to decide where the default configs will be.



          Quoting a post from Slackware forum:




          My understanding is that this is a Debian concept that has been
          adopted by a few packages.



          Basically, /etc/default contains some parameters that the end user or
          administrator is likely to change, rather than embedding the values in
          the actual boot scripts. In this way, changes will persist even if you
          upgrade the package and the boot script is replaced.



          The concept is essentially the same as the .conf files under rc.d
          (rc.inet1.conf, rc.bluetooth.conf, etc), but they are in one
          centralized location away from the scripts themselves.




          Means that, mostly Debian based distributions use /etc/default.



          On Red Hat based distros, you will find that this kind of configuration is managed by the /etc/sysconfig directory on the most common softwares(acpid, httpd, ntpd, crond, samba).



          On Arch, before the systemd switch, you used /etc/{rc.conf,rc.d/functions,rc.d/functions.d/} to customize daemons.



          On Slackware, depending of the service you will have the .conf file inside /etc/rc.d/ with the same name of the daemon you want to give parameters to(rc.inet1.conf, rc.wireless.conf...), or you have to edit the daemon file itself.



          tl,dr: There is no "default SysV Init" parameter file or directory.






          share|improve this answer

























            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "106"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f507537%2fhow-to-change-sysvinit-service-without-editing-init-script%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            2














            On systems that still rely on SysVInit, you need to know what is the mechanism that your specific distribution adopts. Since you can source any file inside your daemon scripts, it's up to the distribution to decide where the default configs will be.



            Quoting a post from Slackware forum:




            My understanding is that this is a Debian concept that has been
            adopted by a few packages.



            Basically, /etc/default contains some parameters that the end user or
            administrator is likely to change, rather than embedding the values in
            the actual boot scripts. In this way, changes will persist even if you
            upgrade the package and the boot script is replaced.



            The concept is essentially the same as the .conf files under rc.d
            (rc.inet1.conf, rc.bluetooth.conf, etc), but they are in one
            centralized location away from the scripts themselves.




            Means that, mostly Debian based distributions use /etc/default.



            On Red Hat based distros, you will find that this kind of configuration is managed by the /etc/sysconfig directory on the most common softwares(acpid, httpd, ntpd, crond, samba).



            On Arch, before the systemd switch, you used /etc/{rc.conf,rc.d/functions,rc.d/functions.d/} to customize daemons.



            On Slackware, depending of the service you will have the .conf file inside /etc/rc.d/ with the same name of the daemon you want to give parameters to(rc.inet1.conf, rc.wireless.conf...), or you have to edit the daemon file itself.



            tl,dr: There is no "default SysV Init" parameter file or directory.






            share|improve this answer






























              2














              On systems that still rely on SysVInit, you need to know what is the mechanism that your specific distribution adopts. Since you can source any file inside your daemon scripts, it's up to the distribution to decide where the default configs will be.



              Quoting a post from Slackware forum:




              My understanding is that this is a Debian concept that has been
              adopted by a few packages.



              Basically, /etc/default contains some parameters that the end user or
              administrator is likely to change, rather than embedding the values in
              the actual boot scripts. In this way, changes will persist even if you
              upgrade the package and the boot script is replaced.



              The concept is essentially the same as the .conf files under rc.d
              (rc.inet1.conf, rc.bluetooth.conf, etc), but they are in one
              centralized location away from the scripts themselves.




              Means that, mostly Debian based distributions use /etc/default.



              On Red Hat based distros, you will find that this kind of configuration is managed by the /etc/sysconfig directory on the most common softwares(acpid, httpd, ntpd, crond, samba).



              On Arch, before the systemd switch, you used /etc/{rc.conf,rc.d/functions,rc.d/functions.d/} to customize daemons.



              On Slackware, depending of the service you will have the .conf file inside /etc/rc.d/ with the same name of the daemon you want to give parameters to(rc.inet1.conf, rc.wireless.conf...), or you have to edit the daemon file itself.



              tl,dr: There is no "default SysV Init" parameter file or directory.






              share|improve this answer




























                2












                2








                2







                On systems that still rely on SysVInit, you need to know what is the mechanism that your specific distribution adopts. Since you can source any file inside your daemon scripts, it's up to the distribution to decide where the default configs will be.



                Quoting a post from Slackware forum:




                My understanding is that this is a Debian concept that has been
                adopted by a few packages.



                Basically, /etc/default contains some parameters that the end user or
                administrator is likely to change, rather than embedding the values in
                the actual boot scripts. In this way, changes will persist even if you
                upgrade the package and the boot script is replaced.



                The concept is essentially the same as the .conf files under rc.d
                (rc.inet1.conf, rc.bluetooth.conf, etc), but they are in one
                centralized location away from the scripts themselves.




                Means that, mostly Debian based distributions use /etc/default.



                On Red Hat based distros, you will find that this kind of configuration is managed by the /etc/sysconfig directory on the most common softwares(acpid, httpd, ntpd, crond, samba).



                On Arch, before the systemd switch, you used /etc/{rc.conf,rc.d/functions,rc.d/functions.d/} to customize daemons.



                On Slackware, depending of the service you will have the .conf file inside /etc/rc.d/ with the same name of the daemon you want to give parameters to(rc.inet1.conf, rc.wireless.conf...), or you have to edit the daemon file itself.



                tl,dr: There is no "default SysV Init" parameter file or directory.






                share|improve this answer















                On systems that still rely on SysVInit, you need to know what is the mechanism that your specific distribution adopts. Since you can source any file inside your daemon scripts, it's up to the distribution to decide where the default configs will be.



                Quoting a post from Slackware forum:




                My understanding is that this is a Debian concept that has been
                adopted by a few packages.



                Basically, /etc/default contains some parameters that the end user or
                administrator is likely to change, rather than embedding the values in
                the actual boot scripts. In this way, changes will persist even if you
                upgrade the package and the boot script is replaced.



                The concept is essentially the same as the .conf files under rc.d
                (rc.inet1.conf, rc.bluetooth.conf, etc), but they are in one
                centralized location away from the scripts themselves.




                Means that, mostly Debian based distributions use /etc/default.



                On Red Hat based distros, you will find that this kind of configuration is managed by the /etc/sysconfig directory on the most common softwares(acpid, httpd, ntpd, crond, samba).



                On Arch, before the systemd switch, you used /etc/{rc.conf,rc.d/functions,rc.d/functions.d/} to customize daemons.



                On Slackware, depending of the service you will have the .conf file inside /etc/rc.d/ with the same name of the daemon you want to give parameters to(rc.inet1.conf, rc.wireless.conf...), or you have to edit the daemon file itself.



                tl,dr: There is no "default SysV Init" parameter file or directory.







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited 6 hours ago

























                answered 6 hours ago









                nwildnernwildner

                14.8k34380




                14.8k34380






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Unix & Linux Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f507537%2fhow-to-change-sysvinit-service-without-editing-init-script%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Accessing regular linux commands in Huawei's Dopra Linux

                    Can't connect RFCOMM socket: Host is down

                    Kernel panic - not syncing: Fatal Exception in Interrupt