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;
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
add a comment |
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
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
add a comment |
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
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
linux bash centos7 systemd systemctl
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
add a comment |
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
add a comment |
1 Answer
1
active
oldest
votes
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.
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
add a comment |
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.
add a comment |
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.
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.
edited Dec 6 '17 at 16:57
answered Dec 6 '17 at 16:42
sekrettsekrett
1414
1414
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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