How to execute sh script using system service on Linux (rhel 7)

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
0
down vote

favorite












I have linux script that starts up my service:



/home/MyApp/MyAppStart.sh



java -jar -Dspring.profiles.active=dev $home/MyApp/MyApp.jar /tmp 2>> /dev/null >> /dev/null & echo $! > /home/MyApp/MyApp-pid


I have a systemd service that will execute the same command when we start the service:



/etc/systemd/system/MyApp.service



[Unit]
Description=My App name
After=syslog.target

[Service]
User=root
Group=root
ExecStart=java -jar -Dspring.profiles.active=dev $home/MyApp/MyApp.jar /tmp 2>> /dev/null >> /dev/null & echo $! > /home/MyApp/MyApp-pid
StandardOutput=file:/home/logs/stdout
StandardError=file:/home/logs/stderr
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target


Question 1:
What I want from the command is start up the jar, print output to console and to a file, print process ID to a file.



Question 2:
I do not see any logs under /home/logs. How do I fix this?



Question 3:
MyApp.service needs to take Environment name (dev/sys/prod) as input. How do I achieve this? If this cannot be achieved, is there a work around?



Question 4:
MyAppStart.sh and MyApp.service do the same thing i.e. I can get the jar running by either executing the bash script or starting up the service.
Instead of having 2 ways to start the jar, can I use just one. I definitely need the systemd service, so can I modify the start-script to execute the service?









share







New contributor




user1478392 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.























    up vote
    0
    down vote

    favorite












    I have linux script that starts up my service:



    /home/MyApp/MyAppStart.sh



    java -jar -Dspring.profiles.active=dev $home/MyApp/MyApp.jar /tmp 2>> /dev/null >> /dev/null & echo $! > /home/MyApp/MyApp-pid


    I have a systemd service that will execute the same command when we start the service:



    /etc/systemd/system/MyApp.service



    [Unit]
    Description=My App name
    After=syslog.target

    [Service]
    User=root
    Group=root
    ExecStart=java -jar -Dspring.profiles.active=dev $home/MyApp/MyApp.jar /tmp 2>> /dev/null >> /dev/null & echo $! > /home/MyApp/MyApp-pid
    StandardOutput=file:/home/logs/stdout
    StandardError=file:/home/logs/stderr
    SuccessExitStatus=143

    [Install]
    WantedBy=multi-user.target


    Question 1:
    What I want from the command is start up the jar, print output to console and to a file, print process ID to a file.



    Question 2:
    I do not see any logs under /home/logs. How do I fix this?



    Question 3:
    MyApp.service needs to take Environment name (dev/sys/prod) as input. How do I achieve this? If this cannot be achieved, is there a work around?



    Question 4:
    MyAppStart.sh and MyApp.service do the same thing i.e. I can get the jar running by either executing the bash script or starting up the service.
    Instead of having 2 ways to start the jar, can I use just one. I definitely need the systemd service, so can I modify the start-script to execute the service?









    share







    New contributor




    user1478392 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.





















      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      I have linux script that starts up my service:



      /home/MyApp/MyAppStart.sh



      java -jar -Dspring.profiles.active=dev $home/MyApp/MyApp.jar /tmp 2>> /dev/null >> /dev/null & echo $! > /home/MyApp/MyApp-pid


      I have a systemd service that will execute the same command when we start the service:



      /etc/systemd/system/MyApp.service



      [Unit]
      Description=My App name
      After=syslog.target

      [Service]
      User=root
      Group=root
      ExecStart=java -jar -Dspring.profiles.active=dev $home/MyApp/MyApp.jar /tmp 2>> /dev/null >> /dev/null & echo $! > /home/MyApp/MyApp-pid
      StandardOutput=file:/home/logs/stdout
      StandardError=file:/home/logs/stderr
      SuccessExitStatus=143

      [Install]
      WantedBy=multi-user.target


      Question 1:
      What I want from the command is start up the jar, print output to console and to a file, print process ID to a file.



      Question 2:
      I do not see any logs under /home/logs. How do I fix this?



      Question 3:
      MyApp.service needs to take Environment name (dev/sys/prod) as input. How do I achieve this? If this cannot be achieved, is there a work around?



      Question 4:
      MyAppStart.sh and MyApp.service do the same thing i.e. I can get the jar running by either executing the bash script or starting up the service.
      Instead of having 2 ways to start the jar, can I use just one. I definitely need the systemd service, so can I modify the start-script to execute the service?









      share







      New contributor




      user1478392 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      I have linux script that starts up my service:



      /home/MyApp/MyAppStart.sh



      java -jar -Dspring.profiles.active=dev $home/MyApp/MyApp.jar /tmp 2>> /dev/null >> /dev/null & echo $! > /home/MyApp/MyApp-pid


      I have a systemd service that will execute the same command when we start the service:



      /etc/systemd/system/MyApp.service



      [Unit]
      Description=My App name
      After=syslog.target

      [Service]
      User=root
      Group=root
      ExecStart=java -jar -Dspring.profiles.active=dev $home/MyApp/MyApp.jar /tmp 2>> /dev/null >> /dev/null & echo $! > /home/MyApp/MyApp-pid
      StandardOutput=file:/home/logs/stdout
      StandardError=file:/home/logs/stderr
      SuccessExitStatus=143

      [Install]
      WantedBy=multi-user.target


      Question 1:
      What I want from the command is start up the jar, print output to console and to a file, print process ID to a file.



      Question 2:
      I do not see any logs under /home/logs. How do I fix this?



      Question 3:
      MyApp.service needs to take Environment name (dev/sys/prod) as input. How do I achieve this? If this cannot be achieved, is there a work around?



      Question 4:
      MyAppStart.sh and MyApp.service do the same thing i.e. I can get the jar running by either executing the bash script or starting up the service.
      Instead of having 2 ways to start the jar, can I use just one. I definitely need the systemd service, so can I modify the start-script to execute the service?







      linux shell-script rhel systemd services





      share







      New contributor




      user1478392 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.










      share







      New contributor




      user1478392 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.








      share



      share






      New contributor




      user1478392 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 6 mins ago









      user1478392

      11




      11




      New contributor




      user1478392 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      user1478392 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      user1478392 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.

























          active

          oldest

          votes











          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',
          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
          );



          );






          user1478392 is a new contributor. Be nice, and check out our Code of Conduct.









           

          draft saved


          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f479226%2fhow-to-execute-sh-script-using-system-service-on-linux-rhel-7%23new-answer', 'question_page');

          );

          Post as a guest



































          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          user1478392 is a new contributor. Be nice, and check out our Code of Conduct.









           

          draft saved


          draft discarded


















          user1478392 is a new contributor. Be nice, and check out our Code of Conduct.












          user1478392 is a new contributor. Be nice, and check out our Code of Conduct.











          user1478392 is a new contributor. Be nice, and check out our Code of Conduct.













           


          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f479226%2fhow-to-execute-sh-script-using-system-service-on-linux-rhel-7%23new-answer', 'question_page');

          );

          Post as a guest













































































          Popular posts from this blog

          How to check contact read email or not when send email to Individual?

          Displaying single band from multi-band raster using QGIS

          How many registers does an x86_64 CPU actually have?