AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1592442
Accepted
kanlukasz
kanlukasz
Asked: 2020-10-12 04:16:28 +0800 CST2020-10-12 04:16:28 +0800 CST 2020-10-12 04:16:28 +0800 CST

我可以在不停止 mysql 和 apache 等服务的情况下安全地关闭 WSL2 吗?

  • 772

我Ubuntu在 Windows 10 上使用带有 WSL2() 的经典 LAMP 开发环境。

我想在完成工作后关闭 WSL2 以便能够释放资源(Vmmem 进程可能会消耗资源)。

我可以wsl --shutdown在不停止 mysql 和 apache 等服务的情况下安全地关闭 WSL2 ( ),还是应该在关闭 WSL2 之前手动停止它们?

有关系吗?有什么好的做法或者可能会出错吗?我不想搞砸我的环境(数据库或 apache 等)

ubuntu apache-http-server
  • 2 2 个回答
  • 6253 Views

2 个回答

  • Voted
  1. Best Answer
    DavidPostill
    2020-10-12T04:26:49+08:002020-10-12T04:26:49+08:00

    我不想搞砸我的环境(数据库或 apache 等)

    为了安全起见,您应该首先关闭这些服务。

    您应该能够编写一个小批处理文件,以正确的顺序关闭所有内容。

    • 4
  2. NotTheDr01ds
    2022-09-13T10:37:52+08:002022-09-13T10:37:52+08:00

    我已经用 and 做了一些有限的测试(见下文)wsl --terminate <distro>,wsl --shutdown它似乎没有向子进程发送SIGTERM(或任何其他信号)以允许它们安全终止。

    正如@DavidPostill 在他的回答中提到的那样,我同意您应该确保首先安全地终止这些服务。

    选择

    作为提供自己的脚本来执行此操作的替代方法,我建议在流程主管(如(恰当命名的)主管)下启动这些服务。有了它,您可以发出一个sudo supervisorctl stop all安全终止(通过默认值SIGTERM)所有相关服务的问题。

    有限的测试说明

    我在这里的快速而肮脏的测试涉及使用 Fish shell(可能是 Bash 或其他东西,但这是我的首选 shell)来注册信号处理程序。

    首先,我做了一个:

    function exit_test --on-event fish_exit
        touch ~/exiting
    end
    

    然后,我从同一个 Ubuntu 发行版/实例中的另一个(Bash)shell 运行:

    pkill -SIGTERM fish
    

    这并没有触发该函数,因为~/exiting它没有被创建,但它Terminated在退出之前确实从 Fish 本身生成了一条消息。


    同样地:

    pkill -SIGKILL fish
    

    Killed...从 Fish生成一条消息,但没有~/exited创建文件。


    pkill -SIGHUP fish
    

    自我提醒:不是SIGHUG……

    这确实生成~/exiting了,但终端上没有消息。


    另一方面,来自 PowerShell:

    wsl --terminate Ubuntu-22.04
    

    ... 没有从终端上的 Fish 生成任何消息,也没有生成~/exiting文件。


    接下来,我为 Fish 中的大多数信号创建了一个陷阱:

    for signal in $(string split ' ' $(trap -l))
        if ! contains $signal "POLL" "STKFLT" "CHLD"
            trap "echo $signal >> ~/signals" $signal
        end
    end
    

    我排除了POLL,STKFLT因为鱼不会让我在他们身上制造陷阱。我排除CHLD了,因为它会在子流程结束时触发(几乎是每个提示,然后是一些提示)。

    对于被捕获的信号的完整列表:

    > trap -l
    HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT
    CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS
    

    基于此,我重新进行了上述测试。

    pkill -SIGTERM fish
    pkill -SIGHUP fish
    pkill -SIGINT fish
    pkill -SIGUSR1 fish
    ... etc.
    

    都正确触发了陷阱,并将相应的信号写入~/signals. 请注意,由于trap,shell 不会退出。


    pkill -SIGKILL fish
    

    同样,生成了一条Killed消息,并且(如预期的那样)没有触发陷阱。


    wsl --shutdown
    # or
    wsl --terminate Ubuntu-22.04
    

    没有触发任何陷阱或消息。

    基于此,在我看来,WSL在终止或关闭时不会向子进程发送任何信号。

    • 0

相关问题

  • 无法打开 Windows 10 和在 Hyper-v 上创建的本地托管的 Ubuntu VM 之间的端口

  • Docker 容器 ssh 错误:ssh_exchange_identification: Connection closed by remote host

  • apache2 可以在没有 conf 文件的情况下工作吗?

  • vmwared 共享文件夹不工作

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 “HTTPS Everywhere”仍然相关吗? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve