Systemd: Supervising process XXXX which is not our child. We'll most likely not notice when it exitsEnabling WiredTiger engine in MongoDB 3systemd ignores return code while starting servicesystemd unit template for instances running from separate directoriessystemd killing process on start after timeout periodTrouble creating PID file in systemd service scriptsystemd active (exited) status of mrd6How to teach systemd to detect service process is already running?Systemd forking chained scriptsRHEL 7 service kicks in immediatelyDisabling systemd messages that interfere with running BASH script

How to Access data returned from Apex class in JS controller using Lightning web component

Make all the squares explode

How to compact two the parabol commands in the following example?

What does i386 mean on macOS Mojave?

How do I compare the result of "1d20+x, with advantage" to "1d20+y, without advantage", assuming x < y?

Exception propagation: When should I catch exceptions?

Why is “Ich wusste, dass aus dir mal was wird” grammitally correct?

Ex-manager wants to stay in touch, I don't want to

Can 'sudo apt-get remove [write]' destroy my Ubuntu?

Why was Endgame Thanos so different than Infinity War Thanos?

Can I use my laptop, which says 100-240V, in the USA?

Extracting sublists that contain similar elements

How can this pool heater gas line be disconnected?

What is the significance of 4200 BCE in context of farming replacing foraging in Europe?

Proof that the inverse image of a single element is a discrete space

Is the schwa sound consistent?

What is the best way for a skeleton to impersonate human without using magic?

Is it a bad idea to replace pull-up resistors with hard pull-ups?

Two researchers want to work on the same extension to my paper. Who to help?

Is taking modulus on both sides of an equation valid?

Why in a Ethernet LAN, a packet sniffer can obtain all packets sent over the LAN?

Run script for 10 times until meets the condition, but break the loop if it meets the condition during iteration

Why do Thanos's punches not kill Captain America or at least cause some mortal injuries?

Word for being out at night during curfew



Systemd: Supervising process XXXX which is not our child. We'll most likely not notice when it exits


Enabling WiredTiger engine in MongoDB 3systemd ignores return code while starting servicesystemd unit template for instances running from separate directoriessystemd killing process on start after timeout periodTrouble creating PID file in systemd service scriptsystemd active (exited) status of mrd6How to teach systemd to detect service process is already running?Systemd forking chained scriptsRHEL 7 service kicks in immediatelyDisabling systemd messages that interfere with running BASH script






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








4















I've created a custom service file which looks like this:



cat /etc/systemd/system/aaa.service



[Unit]
Description=aaa main application
After=syslog.target network-online.target

[Service]
Type=forking
PIDFile=/usr/local/aaa_path/aaa/aaa.pid
WorkingDirectory=/usr/local/aaa_path/aaa/
ExecStart=/usr/local/aaa_path/aaa/run_aaa.sh
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target


When checking status with:



systemctl status aaa


Everything looks ok, except for:



... systemd[1]: aaa.service: Supervising process 18285 which is not our child. We'll most likely not notice when it exits.


Wondering why this message is showing and if it is anything to be concerned about?



my ExecStart is a bash script named run_aaa.sh;
What it does is prepare some environment variables, run some required maintainace scripts, and finally runs the aaa binary (as a daemon) with some dynamic command line options, in the background - and quits (the run_aaa.sh script quits, the aaa daemon binary keeps running in the background, and maintains its own pid file that systemd knows about)



I know systemd is running run_aaa.sh and expects it to fork (because I specified type=forking) and it does actually "fork" by running the "aaa" binary daemon in the background and exiting afterwards.
Plus I do specify PIDFile path and my aaa binary maintains this PIDFile as it should, so why would systemd complain that it might fail to supervise my daemon?



Is there a better way to configure the service for this use case?
(I must use run_aaa.sh script in order to execute my binary)










share|improve this question






















  • You may try to remove PIDFile, which is not required. Or run your binary with exec in the script. If you start your service, what is the parent PID for the aaa binary? Is it PID 1 or your shell script, which has not exited?

    – Denis Shulyaka
    Oct 27 '17 at 9:19











  • Stop calling the shell script and let your systemd unit handle all that prerequisite stuff directly.

    – Michael Hampton
    Dec 6 '17 at 21:00

















4















I've created a custom service file which looks like this:



cat /etc/systemd/system/aaa.service



[Unit]
Description=aaa main application
After=syslog.target network-online.target

[Service]
Type=forking
PIDFile=/usr/local/aaa_path/aaa/aaa.pid
WorkingDirectory=/usr/local/aaa_path/aaa/
ExecStart=/usr/local/aaa_path/aaa/run_aaa.sh
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target


When checking status with:



systemctl status aaa


Everything looks ok, except for:



... systemd[1]: aaa.service: Supervising process 18285 which is not our child. We'll most likely not notice when it exits.


Wondering why this message is showing and if it is anything to be concerned about?



my ExecStart is a bash script named run_aaa.sh;
What it does is prepare some environment variables, run some required maintainace scripts, and finally runs the aaa binary (as a daemon) with some dynamic command line options, in the background - and quits (the run_aaa.sh script quits, the aaa daemon binary keeps running in the background, and maintains its own pid file that systemd knows about)



I know systemd is running run_aaa.sh and expects it to fork (because I specified type=forking) and it does actually "fork" by running the "aaa" binary daemon in the background and exiting afterwards.
Plus I do specify PIDFile path and my aaa binary maintains this PIDFile as it should, so why would systemd complain that it might fail to supervise my daemon?



Is there a better way to configure the service for this use case?
(I must use run_aaa.sh script in order to execute my binary)










share|improve this question






















  • You may try to remove PIDFile, which is not required. Or run your binary with exec in the script. If you start your service, what is the parent PID for the aaa binary? Is it PID 1 or your shell script, which has not exited?

    – Denis Shulyaka
    Oct 27 '17 at 9:19











  • Stop calling the shell script and let your systemd unit handle all that prerequisite stuff directly.

    – Michael Hampton
    Dec 6 '17 at 21:00













4












4








4








I've created a custom service file which looks like this:



cat /etc/systemd/system/aaa.service



[Unit]
Description=aaa main application
After=syslog.target network-online.target

[Service]
Type=forking
PIDFile=/usr/local/aaa_path/aaa/aaa.pid
WorkingDirectory=/usr/local/aaa_path/aaa/
ExecStart=/usr/local/aaa_path/aaa/run_aaa.sh
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target


When checking status with:



systemctl status aaa


Everything looks ok, except for:



... systemd[1]: aaa.service: Supervising process 18285 which is not our child. We'll most likely not notice when it exits.


Wondering why this message is showing and if it is anything to be concerned about?



my ExecStart is a bash script named run_aaa.sh;
What it does is prepare some environment variables, run some required maintainace scripts, and finally runs the aaa binary (as a daemon) with some dynamic command line options, in the background - and quits (the run_aaa.sh script quits, the aaa daemon binary keeps running in the background, and maintains its own pid file that systemd knows about)



I know systemd is running run_aaa.sh and expects it to fork (because I specified type=forking) and it does actually "fork" by running the "aaa" binary daemon in the background and exiting afterwards.
Plus I do specify PIDFile path and my aaa binary maintains this PIDFile as it should, so why would systemd complain that it might fail to supervise my daemon?



Is there a better way to configure the service for this use case?
(I must use run_aaa.sh script in order to execute my binary)










share|improve this question














I've created a custom service file which looks like this:



cat /etc/systemd/system/aaa.service



[Unit]
Description=aaa main application
After=syslog.target network-online.target

[Service]
Type=forking
PIDFile=/usr/local/aaa_path/aaa/aaa.pid
WorkingDirectory=/usr/local/aaa_path/aaa/
ExecStart=/usr/local/aaa_path/aaa/run_aaa.sh
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target


When checking status with:



systemctl status aaa


Everything looks ok, except for:



... systemd[1]: aaa.service: Supervising process 18285 which is not our child. We'll most likely not notice when it exits.


Wondering why this message is showing and if it is anything to be concerned about?



my ExecStart is a bash script named run_aaa.sh;
What it does is prepare some environment variables, run some required maintainace scripts, and finally runs the aaa binary (as a daemon) with some dynamic command line options, in the background - and quits (the run_aaa.sh script quits, the aaa daemon binary keeps running in the background, and maintains its own pid file that systemd knows about)



I know systemd is running run_aaa.sh and expects it to fork (because I specified type=forking) and it does actually "fork" by running the "aaa" binary daemon in the background and exiting afterwards.
Plus I do specify PIDFile path and my aaa binary maintains this PIDFile as it should, so why would systemd complain that it might fail to supervise my daemon?



Is there a better way to configure the service for this use case?
(I must use run_aaa.sh script in order to execute my binary)







linux bash centos7 systemd systemctl






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Aug 23 '17 at 8:11









ktopazktopaz

2113




2113












  • You may try to remove PIDFile, which is not required. Or run your binary with exec in the script. If you start your service, what is the parent PID for the aaa binary? Is it PID 1 or your shell script, which has not exited?

    – Denis Shulyaka
    Oct 27 '17 at 9:19











  • Stop calling the shell script and let your systemd unit handle all that prerequisite stuff directly.

    – Michael Hampton
    Dec 6 '17 at 21:00

















  • You may try to remove PIDFile, which is not required. Or run your binary with exec in the script. If you start your service, what is the parent PID for the aaa binary? Is it PID 1 or your shell script, which has not exited?

    – Denis Shulyaka
    Oct 27 '17 at 9:19











  • Stop calling the shell script and let your systemd unit handle all that prerequisite stuff directly.

    – Michael Hampton
    Dec 6 '17 at 21:00
















You may try to remove PIDFile, which is not required. Or run your binary with exec in the script. If you start your service, what is the parent PID for the aaa binary? Is it PID 1 or your shell script, which has not exited?

– Denis Shulyaka
Oct 27 '17 at 9:19





You may try to remove PIDFile, which is not required. Or run your binary with exec in the script. If you start your service, what is the parent PID for the aaa binary? Is it PID 1 or your shell script, which has not exited?

– Denis Shulyaka
Oct 27 '17 at 9:19













Stop calling the shell script and let your systemd unit handle all that prerequisite stuff directly.

– Michael Hampton
Dec 6 '17 at 21:00





Stop calling the shell script and let your systemd unit handle all that prerequisite stuff directly.

– Michael Hampton
Dec 6 '17 at 21:00










1 Answer
1






active

oldest

votes


















0














If you need to run shell script only once, then just add ExecStartPre=/path/to/script and run your daemon with ExecStart=/path/to/daemon. The script will not run on restart, maybe this is not what you need.



If you need to run the script on reboots as well, then set Type=simple and run the daemon in foreground mode from shell script, so the script will not quit. But you still get that message and stop/restart actions are waiting 30 seconds before State 'stop-sigterm' timed out. Killing, very unpleasant. If you then add ExecStop=/bin/kill $MAINPID, the timeout problem goes away. Don't remove PIDFile. You will still see that message, but every action start/stop/restart/status work correctly. Maybe there is another better way to achieve the same. At least this works for me and the message may be safely ignored. When daemon quits, shell script will also quit, so systemd will know that.






share|improve this answer

























    Your Answer








    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "2"
    ;
    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: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    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%2fserverfault.com%2fquestions%2f870011%2fsystemd-supervising-process-xxxx-which-is-not-our-child-well-most-likely-not%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









    0














    If you need to run shell script only once, then just add ExecStartPre=/path/to/script and run your daemon with ExecStart=/path/to/daemon. The script will not run on restart, maybe this is not what you need.



    If you need to run the script on reboots as well, then set Type=simple and run the daemon in foreground mode from shell script, so the script will not quit. But you still get that message and stop/restart actions are waiting 30 seconds before State 'stop-sigterm' timed out. Killing, very unpleasant. If you then add ExecStop=/bin/kill $MAINPID, the timeout problem goes away. Don't remove PIDFile. You will still see that message, but every action start/stop/restart/status work correctly. Maybe there is another better way to achieve the same. At least this works for me and the message may be safely ignored. When daemon quits, shell script will also quit, so systemd will know that.






    share|improve this answer





























      0














      If you need to run shell script only once, then just add ExecStartPre=/path/to/script and run your daemon with ExecStart=/path/to/daemon. The script will not run on restart, maybe this is not what you need.



      If you need to run the script on reboots as well, then set Type=simple and run the daemon in foreground mode from shell script, so the script will not quit. But you still get that message and stop/restart actions are waiting 30 seconds before State 'stop-sigterm' timed out. Killing, very unpleasant. If you then add ExecStop=/bin/kill $MAINPID, the timeout problem goes away. Don't remove PIDFile. You will still see that message, but every action start/stop/restart/status work correctly. Maybe there is another better way to achieve the same. At least this works for me and the message may be safely ignored. When daemon quits, shell script will also quit, so systemd will know that.






      share|improve this answer



























        0












        0








        0







        If you need to run shell script only once, then just add ExecStartPre=/path/to/script and run your daemon with ExecStart=/path/to/daemon. The script will not run on restart, maybe this is not what you need.



        If you need to run the script on reboots as well, then set Type=simple and run the daemon in foreground mode from shell script, so the script will not quit. But you still get that message and stop/restart actions are waiting 30 seconds before State 'stop-sigterm' timed out. Killing, very unpleasant. If you then add ExecStop=/bin/kill $MAINPID, the timeout problem goes away. Don't remove PIDFile. You will still see that message, but every action start/stop/restart/status work correctly. Maybe there is another better way to achieve the same. At least this works for me and the message may be safely ignored. When daemon quits, shell script will also quit, so systemd will know that.






        share|improve this answer















        If you need to run shell script only once, then just add ExecStartPre=/path/to/script and run your daemon with ExecStart=/path/to/daemon. The script will not run on restart, maybe this is not what you need.



        If you need to run the script on reboots as well, then set Type=simple and run the daemon in foreground mode from shell script, so the script will not quit. But you still get that message and stop/restart actions are waiting 30 seconds before State 'stop-sigterm' timed out. Killing, very unpleasant. If you then add ExecStop=/bin/kill $MAINPID, the timeout problem goes away. Don't remove PIDFile. You will still see that message, but every action start/stop/restart/status work correctly. Maybe there is another better way to achieve the same. At least this works for me and the message may be safely ignored. When daemon quits, shell script will also quit, so systemd will know that.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Dec 6 '17 at 16:57

























        answered Dec 6 '17 at 16:42









        sekrettsekrett

        1414




        1414



























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Server Fault!


            • 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%2fserverfault.com%2fquestions%2f870011%2fsystemd-supervising-process-xxxx-which-is-not-our-child-well-most-likely-not%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

            Wikipedia:Vital articles Мазмуну Biography - Өмүр баян Philosophy and psychology - Философия жана психология Religion - Дин Social sciences - Коомдук илимдер Language and literature - Тил жана адабият Science - Илим Technology - Технология Arts and recreation - Искусство жана эс алуу History and geography - Тарых жана география Навигация менюсу

            Bruxelas-Capital Índice Historia | Composición | Situación lingüística | Clima | Cidades irmandadas | Notas | Véxase tamén | Menú de navegacióneO uso das linguas en Bruxelas e a situación do neerlandés"Rexión de Bruxelas Capital"o orixinalSitio da rexiónPáxina de Bruselas no sitio da Oficina de Promoción Turística de Valonia e BruxelasMapa Interactivo da Rexión de Bruxelas-CapitaleeWorldCat332144929079854441105155190212ID28008674080552-90000 0001 0666 3698n94104302ID540940339365017018237

            What should I write in an apology letter, since I have decided not to join a company after accepting an offer letterShould I keep looking after accepting a job offer?What should I do when I've been verbally told I would get an offer letter, but still haven't gotten one after 4 weeks?Do I accept an offer from a company that I am not likely to join?New job hasn't confirmed starting date and I want to give current employer as much notice as possibleHow should I address my manager in my resignation letter?HR delayed background verification, now jobless as resignedNo email communication after accepting a formal written offer. How should I phrase the call?What should I do if after receiving a verbal offer letter I am informed that my written job offer is put on hold due to some internal issues?Should I inform the current employer that I am about to resign within 1-2 weeks since I have signed the offer letter and waiting for visa?What company will do, if I send their offer letter to another company