# How to listen for specific URL to restart Node red

**URL:** <https://discourse.nodered.org/t/how-to-listen-for-specific-url-to-restart-node-red/35504>\
**Category:** General\
**Created:** [7 November 2020 15:52 UTC](https://discourse.nodered.org/t/how-to-listen-for-specific-url-to-restart-node-red/35504 "2020-11-07T15:52:18Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![kes](https://avatars.discourse-cdn.com/v4/letter/k/7ea924/32.png) [@kes](https://discourse.nodered.org/u/kes)\
**Post date:** [7 November 2020 15:52 UTC](https://discourse.nodered.org/t/how-to-listen-for-specific-url-to-restart-node-red/35504/1 "2020-11-07T15:52:18Z")

</div>

I wish to trigger a restart of node red when I use this url on the node-red server, which is a rasp pi.

[http://192.168.1.120:1880/node-red-restart](http://192.168.1.120:1880/node-red-restart)

On the rasp pi, the node-red restart command is

`cd /home/pi/.node-red; node-red restart`

How do I get node-red to restart using a url in this way?

I have a "http in" node and an "execure node" with the flow as configured below.

 ![2020-11-07 __Sat__ 15:44:38](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/e/a/ea29110ed34c2371571db06eb9eceb2ea2905c9a.jpeg)

```auto
[
    {
        "id": "b614769e.cfcf98",
        "type": "exec",
        "z": "5e66f20c.58838c",
        "command": "cd /home/pi/.node-red; sudo node-red restart",
        "addpay": false,
        "append": "",
        "useSpawn": "false",
        "timer": "",
        "oldrc": false,
        "name": "node-red restart",
        "x": 660,
        "y": 420,
        "wires": [
            [],
            [
                "13381a54.0c6cc6"
            ],
            []
        ]
    },
    {
        "id": "38a70270.e1cfce",
        "type": "inject",
        "z": "5e66f20c.58838c",
        "name": "node-red restart",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "node-red restart",
        "payloadType": "str",
        "x": 160,
        "y": 420,
        "wires": [
            [
                "b614769e.cfcf98"
            ]
        ]
    },
    {
        "id": "87c92674.4d5518",
        "type": "http in",
        "z": "5e66f20c.58838c",
        "name": "node-red restart",
        "url": "http://192.168.1.120:1880/node-red-restart",
        "method": "get",
        "upload": false,
        "swaggerDoc": "",
        "x": 160,
        "y": 480,
        "wires": [
            [
                "b614769e.cfcf98"
            ]
        ]
    },
    {
        "id": "13381a54.0c6cc6",
        "type": "debug",
        "z": "5e66f20c.58838c",
        "name": "node-red restart",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 900,
        "y": 420,
        "wires": []
    }
]

```

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [7 November 2020 16:19 UTC](https://discourse.nodered.org/t/how-to-listen-for-specific-url-to-restart-node-red/35504/2 "2020-11-07T16:19:11Z")

</div>

Does the command `sudo node-red restart` work in a terminal?  
If not then how about the command `sudo node-red-restart`?

---

<div class="post-metadata">

**Author:** ![kes](https://avatars.discourse-cdn.com/v4/letter/k/7ea924/32.png) [@kes](https://discourse.nodered.org/u/kes)\
**Post date:** [7 November 2020 16:21 UTC](https://discourse.nodered.org/t/how-to-listen-for-specific-url-to-restart-node-red/35504/3 "2020-11-07T16:21:26Z")

</div>

On the command line in the terminal  
This does not work --\> `sudo node-red-restart`  
This does work --\> `sudo node-red restart`

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [7 November 2020 16:27 UTC](https://discourse.nodered.org/t/how-to-listen-for-specific-url-to-restart-node-red/35504/4 "2020-11-07T16:27:04Z")

</div>

> [@kes](#):
>
> This does work --\> `sudo node-red restart`

Are you sure? It should attempt to start node-red with a flows file called `restart.json`.  
Did you use the [recommended script](https://nodered.org/docs/getting-started/raspberrypi) for installing node-red on a pi? If so then you should have the commands  
`node-red-start`  
`node-red-stop`  
`node-red-restart`

---

<div class="post-metadata">

**Author:** ![kes](https://avatars.discourse-cdn.com/v4/letter/k/7ea924/32.png) [@kes](https://discourse.nodered.org/u/kes)\
**Post date:** [7 November 2020 16:45 UTC](https://discourse.nodered.org/t/how-to-listen-for-specific-url-to-restart-node-red/35504/5 "2020-11-07T16:45:14Z")

</div>

Hi,  
I have an ARM 7, slightly older pi, and the install script just didn't work.  
I gave up trying to use it after running into the second error it produced, and did a manual install.  
That may explain why the hyphenated calls don't work.  
But 'node-red restart' does work

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [7 November 2020 16:46 UTC](https://discourse.nodered.org/t/how-to-listen-for-specific-url-to-restart-node-red/35504/6 "2020-11-07T16:46:26Z")

</div>

> [@kes](#):
>
> 'node-red restart' does work

Please post the log you get from running that command. Copy/paste the text please, using the `</>` button at the top of the forum text entry window when you paste it in.  
Also tell us how you are running node-red normally (rather than a restart) and post the log from that.

---

<div class="post-metadata">

**Author:** ![kes](https://avatars.discourse-cdn.com/v4/letter/k/7ea924/32.png) [@kes](https://discourse.nodered.org/u/kes)\
**Post date:** [7 November 2020 17:20 UTC](https://discourse.nodered.org/t/how-to-listen-for-specific-url-to-restart-node-red/35504/7 "2020-11-07T17:20:18Z")

</div>

```auto
pi@raspberrypi:~/.node-red $ node-red restart
7 Nov 17:19:37 - [info] 

Welcome to Node-RED
===================

7 Nov 17:19:37 - [info] Node-RED version: v1.2.2
7 Nov 17:19:37 - [info] Node.js version: v12.19.0
7 Nov 17:19:37 - [info] Linux 5.4.72-v7+ arm LE
7 Nov 17:19:39 - [info] Loading palette nodes
7 Nov 17:19:45 - [info] Dashboard version 2.23.4 started at /ui
7 Nov 17:19:47 - [warn] ------------------------------------------------------
7 Nov 17:19:47 - [warn] [node-red-node-group/group] Error: This module is not required for Node-RED 1.1.0 or later (line:9)
7 Nov 17:19:47 - [warn] ------------------------------------------------------
7 Nov 17:19:47 - [info] Settings file : /home/pi/.node-red/settings.js
7 Nov 17:19:47 - [info] Context store : 'default' [module=memory]
7 Nov 17:19:47 - [info] User directory : /home/pi/.node-red
7 Nov 17:19:47 - [warn] Projects disabled : editorTheme.projects.enabled=false
7 Nov 17:19:47 - [info] Flows file : /home/pi/.node-red/restart
7 Nov 17:19:47 - [info] Creating new flow file
7 Nov 17:19:47 - [warn] 

---------------------------------------------------------------------
Your flow credentials file is encrypted using a system-generated key.

If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.

You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------

7 Nov 17:19:47 - [info] Starting flows
7 Nov 17:19:47 - [info] Started flows
7 Nov 17:19:47 - [error] Unable to listen on http://127.0.0.1:1880/
7 Nov 17:19:47 - [error] Error: port in use
pi@raspberrypi:~/.node-red $

```

```auto
pi@raspberrypi:~/.node-red $ node-red-restart
-bash: node-red-restart: command not found
pi@raspberrypi:~/.node-red $

```

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [7 November 2020 18:16 UTC](https://discourse.nodered.org/t/how-to-listen-for-specific-url-to-restart-node-red/35504/8 "2020-11-07T18:16:28Z")

</div>

> [@kes](#):
>
> ```auto
> 7 Nov 17:19:47 - [error] Unable to listen on http://127.0.0.1:1880/
> 7 Nov 17:19:47 - [error] Error: port in use
> 
> ```

> [@kes](#):
>
> ```auto
> Flows file : /home/pi/.node-red/restart
> [info] Creating new flow file
> 
> ```

As you can see that just attempted to start node red again, with a flows file called `restart`, it has not stopped the one already running, which is why it cannot get access to the port.  
Are you running node red as a systemd service? If so you can restart with  
`sudo systemctl restart nodered`  
Assuming your service file is `nodered.service`

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [6 January 2021 18:16 UTC](https://discourse.nodered.org/t/how-to-listen-for-specific-url-to-restart-node-red/35504/9 "2021-01-06T18:16:36Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
