mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-05-02 13:44:00 +00:00
Provide a script to user to trigger system shutdown request in service VM or user VM. System shutdown logic have been integrated in the lifecycle manager, only need to send system shutdown request command through unix domain socket in this script. v3-->v4: Rewirte system shutdown trigger script using python since phython script have better portability. v4-->v5: Update command name and copyright header. Tracked-On: #6652 Signed-off-by: Xiangyang Wu <xiangyang.wu@intel.com> Reviewed-by: fei1.li@intel.com
32 lines
852 B
Python
32 lines
852 B
Python
#!/usr/bin/env python3
|
|
#
|
|
# Copyright (C) 2021 Intel Corporation.
|
|
#
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
#
|
|
import socket
|
|
|
|
class SocketClient:
|
|
def __init__(self):
|
|
pass
|
|
def connect_to_server(self):
|
|
SOKET_ADDR = '/var/lib/life_mngr/monitor.sock'
|
|
SHUTDOWN_REQ = 'req_sys_shutdown'
|
|
BUF_LEN = 1024
|
|
|
|
# unix domain sockets
|
|
server_address = SOKET_ADDR
|
|
socket_family = socket.AF_UNIX
|
|
socket_type = socket.SOCK_STREAM
|
|
|
|
sock = socket.socket(socket_family, socket_type)
|
|
sock.connect(server_address)
|
|
sock.sendall(SHUTDOWN_REQ.encode())
|
|
data = sock.recv(BUF_LEN)
|
|
print(f"Waiting for ACK message...: {data.decode()}")
|
|
sock.close()
|
|
|
|
if __name__ == "__main__":
|
|
socket_client_obj = SocketClient()
|
|
socket_client_obj.connect_to_server()
|