403Webshell
Server IP : 103.161.17.216  /  Your IP : 216.73.216.1
Web Server : nginx/1.18.0
System : Linux tipsysaigoncharming 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User : www-data ( 33)
PHP Version : 7.4.3-4ubuntu2.29
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /snap/lxd/current/commands/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /snap/lxd/current/commands/daemon.stop
#!/bin/sh
set -eu

# Re-exec outside of apparmor confinement
if [ -d /sys/kernel/security/apparmor ]; then
  label="$(cat /proc/self/attr/current 2>/dev/null)"
  if [ "$label" != "unconfined" ] && [ -n "${label##*(unconfined)}" ]; then
    exec aa-exec -p unconfined -- "$0" "$@"
  fi
fi

reason="host shutdown"
if [ -s "${SNAP_COMMON}/state" ]; then
    read -r reason < "${SNAP_COMMON}/state"
else
  # FIXME: Detect stop reason
  #        This should be exposed by snapd directly
  STATUS=$(snap-query 2>/dev/null || true)

  if [ "${STATUS}" = "auto-refresh" ]; then
      reason="snap refresh"
  elif [ "${STATUS}" = "refresh-snap" ]; then
      reason="snap refresh"
  elif [ "${STATUS}" = "install-snap" ]; then
      reason="snap refresh"
  elif [ "${STATUS}" = "remove-snap" ]; then
      reason="snap removal"
  fi
fi

echo "=> Stop reason is: ${reason}"

# Handle lxd shutdown
if [ "${reason}" = "shutdown" ]; then
    exit 0
fi

# Handle reloads and crashes
if [ "${reason}" = "reload" ] || [ "${reason}" = "crashed" ]; then
    exit 0
fi

export LXD_DIR="${SNAP_COMMON}/lxd/"
read -r PID < "${SNAP_COMMON}/lxd.pid" || true

# Handle refreshes
if [ "${reason}" = "snap refresh" ]; then
    echo "=> Stopping LXD"
    if [ -n "${PID}" ] && kill -0 "${PID}" 2>/dev/null; then
        if ! kill "${PID}"; then
            echo "==> Failed to signal LXD to exit"
        fi

        DEAD=0
        for _ in $(seq 320); do
            if ! kill -0 "${PID}" 2>/dev/null; then
                DEAD=1
                echo "==> Stopped LXD"
                break
            fi
            sleep 1
        done

        if [ "${DEAD}" = "0" ]; then
            echo "==> Forcefully stopping LXD after 5 minutes wait"
            if kill -9 "${PID}" 2>/dev/null; then
                echo "==> Stopped LXD"
            else
                echo "==> Failed to stop LXD"
            fi
        fi
    fi

    exit 0
fi

# Shutdown the daemons
## LXD
echo "=> Stopping LXD (with instance shutdown)"

echo host-shutdown > "${SNAP_COMMON}/state"
if [ -n "${PID}" ] && kill -0 "${PID}" 2>/dev/null; then
    if ! kill -30 "${PID}"; then
        echo "==> Failed to signal LXD to shutdown"
    fi

    DEAD=0
    for _ in $(seq 540); do
        if ! kill -0 "${PID}" 2>/dev/null; then
            DEAD=1
            echo "==> Stopped LXD"
            break
        fi
        sleep 1
    done

    if [ "${DEAD}" = "0" ]; then
        echo "==> Forcefully stopping LXD after 9 minutes wait"
        if kill -9 "${PID}" 2>/dev/null; then
            echo "==> Stopped LXD"
        else
            echo "==> Failed to stop LXD"
        fi
    fi
fi

## OpenVswitch
if [ -e "${SNAP_COMMON}/openvswitch/run/ovs-vswitchd.pid" ]; then
    read -r OVS_PID < "${SNAP_COMMON}/openvswitch/run/ovs-vswitchd.pid" || true
    if [ -n "${OVS_PID}" ] && kill -0 "${OVS_PID}" 2>/dev/null; then
        (
            echo "=> Stopping Open vSwitch"

            set -e
            export OVS_LOGDIR="${SNAP_COMMON}/openvswitch/logs/"
            export OVS_RUNDIR="${SNAP_COMMON}/openvswitch/run/"
            export OVS_DBDIR="${SNAP_COMMON}/openvswitch/db/"
            export OVS_SYSCONFDIR="${SNAP_COMMON}/openvswitch/conf/"
            export OVS_PKGDATADIR="${SNAP}/share/openvswitch/"
            export OVS_BINDIR="${SNAP}/bin/"
            export OVS_SBINDIR="${SNAP}/bin/"

            if "${SNAP}/share/openvswitch/scripts/ovs-ctl" stop; then
                echo "==> Stopped Open vSwitch"
            else
                echo "==> Failed to stop Open vSwitch"
            fi
        )
    fi
fi

## LXCFS
if [ -e "${SNAP_COMMON}/lxcfs.pid" ]; then
    read -r LXCFS_PID < "${SNAP_COMMON}/lxcfs.pid" || true
    if [ -n "${LXCFS_PID}" ] && kill -0 "${LXCFS_PID}" 2>/dev/null; then
        echo "=> Stopping LXCFS"

        if ! kill "${LXCFS_PID}"; then
            echo "==> Failed to signal LXCFS to stop"
        fi

        DEAD=0
        for _ in $(seq 30); do
            if ! kill -0 "${LXCFS_PID}" 2>/dev/null; then
                DEAD=1
                echo "==> Stopped LXCFS"
                break
            fi
            sleep 1
        done

        if [ "${DEAD}" = "0" ]; then
            echo "==> Forcefully stopping LXCFS after 30 seconds wait"
            if kill -9 "${LXCFS_PID}" 2>/dev/null; then
                echo "==> Stopped LXCFS"
            else
                echo "==> Failed to stop LXCFS"
            fi
        fi

        fusermount -u "${SNAP_COMMON}/var/lib/lxcfs" >/dev/null 2>&1 || true
    fi
fi

## Cleanup
echo "=> Cleaning up PID files"
rm -f "${SNAP_COMMON}/lxcfs.pid" "${SNAP_COMMON}/lxd.pid"

## Flush our shared namespace from the host
echo "=> Cleaning up namespaces"
nsenter -t 1 -m umount -l "${SNAP_COMMON}/ns" 2>/dev/null || true

echo "=> All done"
exit 0

Youez - 2016 - github.com/yon3zu
LinuXploit