Skip to content

pman command: quit

Rudolph Pienaar edited this page Mar 24, 2017 · 8 revisions

pman command: quit

Abstract

This page describes the quit command. It forces a pman process to gracefully quit.

Preconditions

  • This page assumes that pman is listening on: 172.17.0.2:5010.
  • Make sure that pman has been started (see here for more info):
pman --rawmode 1 --http  --port 5010 --listeners 12
  • This page assumes that a previous run has been managed with parameters
{  "action": "run",
        "meta": {
                "cmd":      "cal 7 1970",
                "auid":     "rudolphpienaar",
                "jid":      "cal-job-1234",
                "threaded": true
        }
}

msg summary

The msg payload of the REST interaction with pman is:

{  "action": "quit",
    "meta": {
                "when":         "now",
                "saveDB":       true
            }
}

The when indicates a time delay, in this case right now, and the saveDB indicates to save the state of the DB before quitting.

quit

purl calling syntax

Just quit already! When? Now! Save the Database before quitting? Yes!

purl --verb POST --raw --http 172.17.0.2:5010/api/v1/cmd --jsonwrapper 'payload' --msg \
'{  "action": "quit",
    "meta": {
                "when":         "now",
                "saveDB":       true
            }
}' --quiet --jsonpprintindent 4  

Using the dockerized version of purl

To use the dockerized version of purl, and assuming a pman on the given IP:

Using the source repo

If you have cloned the source repo, you can cd to the root directory and execute the docker helper scripts in the docker-bin directory.

docker-bin/purl --verb POST --raw --http 172.17.0.2:5010/api/v1/cmd --jsonwrapper 'payload' --msg \
'{  "action": "quit",
    "meta": {
                "when":         "now",
                "saveDB":       true
            }
}' --quiet --jsonpprintindent 4  
Calling docker directly

The helper script just creates a docker run command line string. You can run this string directly without using the helper script and directly calling the docker app:

docker run --name pman -v /home:/Users --rm -ti fnndsc/pman purl --verb POST --raw --http 172.17.0.2:5010/api/v1/cmd --jsonwrapper 'payload' --msg \
'{  "action": "quit",
    "meta": {
                "when":         "now",
                "saveDB":       true
            }
}' --quiet --jsonpprintindent 4  

return payload

The above call returns the JSON string:

{
    "action": "quit",
    "meta": {
        "saveDB": true,
        "when": "now"
    },
    "RESTheader": "POST /api/v1/cmd HTTP/1.1\r",
    "payloadsize": 72,
    "RESTverb": "POST",
    "receivedByServer": [
        "POST /api/v1/cmd HTTP/1.1\r",
        "Host: 172.17.0.2:5010\r",
        "User-Agent: PycURL/7.43.0 libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3\r",
        "Accept: */*\r",
        "Content-type: application/vnd.collection+json\r",
        "Content-Length: 72\r",
        "\r",
        "{\"payload\": {\"action\": \"quit\", \"meta\": {\"saveDB\": true, \"when\": \"now\"}}}"
    ],
    "status": true,
    "path": "/api/v1/cmd",
    "d_ret": {}
}

with the result that the remote pman service has shutdown gracefully.

--30--