[fpc-pascal] Can a console app running as Linux service restart itself?
I would like my service application to restart itself once per 24 hours, but only when nothing else is going on. So the application itself would know this but how can I make it restart itself (as the service)? It is running in a RaspberryPi so it is a Debian derivative Linux. -- Bo Berglund Developer in Sweden ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Can a console app running as Linux service restart itself?
On Thu, 20 May 2021, Bo Berglund via fpc-pascal wrote: I would like my service application to restart itself once per 24 hours, but only when nothing else is going on. So the application itself would know this but how can I make it restart itself (as the service)? Just exit ? If you configured systemd to start your app correctly it will restart it. Michael. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Can a console app running as Linux service restart itself?
On Thu, 20 May 2021 14:52:47 +0200 (CEST), Michael Van Canneyt via fpc-pascal wrote: > > >On Thu, 20 May 2021, Bo Berglund via fpc-pascal wrote: > >> I would like my service application to restart itself once per 24 hours, but >> only when nothing else is going on. So the application itself would know this >> but how can I make it restart itself (as the service)? > >Just exit ? >If you configured systemd to start your app correctly it will restart it. > Is it as simple as that? Here is my service file: [Unit] Description=SSRemote Server Wants=network.target After=syslog.target network-online.target [Service] Type=simple ExecStart=/agi/ssremote/bin/SSRemoteServerLx Restart=always #<== This RestartSec=10 #<== And this KillMode=process User=pi [Install] WantedBy=multi-user.target Do these 2 marked lines mean that if the service application just exits (with no exit code) systemd will restart it after 10 seconds? And: Right now I am running it as user pi as shown above, is there some reason I should run it as root instead? (I wanted the files created while running to be owned by pi). -- Bo Berglund Developer in Sweden ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Can a console app running as Linux service restart itself?
On Thu, 20 May 2021, Bo Berglund via fpc-pascal wrote: On Thu, 20 May 2021 14:52:47 +0200 (CEST), Michael Van Canneyt via fpc-pascal wrote: On Thu, 20 May 2021, Bo Berglund via fpc-pascal wrote: I would like my service application to restart itself once per 24 hours, but only when nothing else is going on. So the application itself would know this but how can I make it restart itself (as the service)? Just exit ? If you configured systemd to start your app correctly it will restart it. Is it as simple as that? Here is my service file: [Unit] Description=SSRemote Server Wants=network.target After=syslog.target network-online.target [Service] Type=simple ExecStart=/agi/ssremote/bin/SSRemoteServerLx Restart=always #<== This RestartSec=10 #<== And this KillMode=process User=pi [Install] WantedBy=multi-user.target Do these 2 marked lines mean that if the service application just exits (with no exit code) systemd will restart it after 10 seconds? Yes. And: Right now I am running it as user pi as shown above, is there some reason I should run it as root instead? Running as root is not recommended. You can do it, but I would not. Michael. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Can a console app running as Linux service restart itself?
On Thu, 20 May 2021 17:13:16 +0200 (CEST), Michael Van Canneyt via fpc-pascal wrote: > > >On Thu, 20 May 2021, Bo Berglund via fpc-pascal wrote: > >> On Thu, 20 May 2021 14:52:47 +0200 (CEST), Michael Van Canneyt via fpc-pascal >> wrote: >> >>> >>> >>> On Thu, 20 May 2021, Bo Berglund via fpc-pascal wrote: >>> I would like my service application to restart itself once per 24 hours, but only when nothing else is going on. So the application itself would know this but how can I make it restart itself (as the service)? >>> >>> Just exit ? >>> If you configured systemd to start your app correctly it will restart it. >>> >> >> Is it as simple as that? Here is my service file: >> >> [Unit] >> Description=SSRemote Server >> Wants=network.target >> After=syslog.target network-online.target >> >> [Service] >> Type=simple >> ExecStart=/agi/ssremote/bin/SSRemoteServerLx >> Restart=always #<== This >> RestartSec=10 #<== And this >> KillMode=process >> User=pi >> >> [Install] >> WantedBy=multi-user.target >> >> Do these 2 marked lines mean that if the service application just exits >> (with no >> exit code) systemd will restart it after 10 seconds? > >Yes. > >> >> And: >> Right now I am running it as user pi as shown above, is there some reason I >> should run it as root instead? > >Running as root is not recommended. You can do it, but I would not. > Thanks Michael, much obliged! Makes things so much simpler. Just exit at the appropriate time. :-) -- Bo Berglund Developer in Sweden ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Can a console app running as Linux service restart itself?
If you didn't have the configuration setup as required, you could still spawn a second process to kill and restart your process as well, this works too, but Michael's suggestion is probably much cleaner, and in all likelihood, is probably the preferred method, but I know folks struggle with the whole system process configuration issue, so some go the other route just for simplicity sake. On 5/20/2021 12:03 PM, Bo Berglund via fpc-pascal wrote: On Thu, 20 May 2021 17:13:16 +0200 (CEST), Michael Van Canneyt via fpc-pascal wrote: On Thu, 20 May 2021, Bo Berglund via fpc-pascal wrote: On Thu, 20 May 2021 14:52:47 +0200 (CEST), Michael Van Canneyt via fpc-pascal wrote: On Thu, 20 May 2021, Bo Berglund via fpc-pascal wrote: I would like my service application to restart itself once per 24 hours, but only when nothing else is going on. So the application itself would know this but how can I make it restart itself (as the service)? Just exit ? If you configured systemd to start your app correctly it will restart it. Is it as simple as that? Here is my service file: [Unit] Description=SSRemote Server Wants=network.target After=syslog.target network-online.target [Service] Type=simple ExecStart=/agi/ssremote/bin/SSRemoteServerLx Restart=always #<== This RestartSec=10 #<== And this KillMode=process User=pi [Install] WantedBy=multi-user.target Do these 2 marked lines mean that if the service application just exits (with no exit code) systemd will restart it after 10 seconds? Yes. And: Right now I am running it as user pi as shown above, is there some reason I should run it as root instead? Running as root is not recommended. You can do it, but I would not. Thanks Michael, much obliged! Makes things so much simpler. Just exit at the appropriate time. :-) ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal