linux退出命令进程继续运行程序

fiy 其他 93

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    要让Linux中的一个命令或进程在退出时继续运行,可以使用以下几种方式:

    1. 使用后台运行命令:可以在命令后面加上&符号,让该命令在后台运行。例如:
    “`
    $ command &
    “`
    这样命令会在后台继续运行,而你可以继续在终端输入其他命令。

    2. 使用nohup命令:nohup命令可以让你在退出终端后仍然保持程序的运行。例如:
    “`
    $ nohup command &
    “`
    nohup命令会将命令的输出重定向到一个文件(默认为nohup.out),这样即使终端关闭,程序仍然能够继续运行。

    3. 使用disown命令:可以使用disown命令将正在运行的进程从当前终端会话中分离出来。例如:
    “`
    $ command
    Ctrl + Z
    $ bg
    $ disown %
    “`
    先使用Ctrl + Z将命令挂起,然后使用bg命令将命令放到后台运行,最后使用disown命令将进程与当前终端分离。

    以上是几种常用的方法,根据实际需求选择合适的方式。无论哪种方式,你退出终端后,程序都会继续在后台运行。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux系统中,可以使用以下几种方法来实现退出命令但继续运行程序的效果。

    1. 使用nohup命令:
    nohup命令可以在后台运行程序,并将输出重定向到nohup.out文件中。即使退出终端或者注销用户,程序仍然会继续运行。使用nohup命令的语法如下:
    “`
    nohup command &
    “`
    这里的command可以是任何需要运行的命令或者程序。运行命令后,终端会立即返回一个进程ID,表示程序已经在后台运行。可以使用ps命令来查看程序是否仍在运行。

    2. 使用screen命令:
    screen命令可以创建一个虚拟终端会话,并在该会话中运行程序。通过此方法,你可以在不退出终端的情况下断开与会话的连接,并在需要时重新连接到会话中。使用screen命令的基本语法如下:
    “`
    screen -S session_name
    “`
    这里的session_name是你为会话指定的名称。在创建了会话后,可以在会话中执行程序。当需要断开与会话的连接时,可以按下Ctrl + A,然后按下D键。重新连接到会话时,可以使用以下命令:
    “`
    screen -r session_name
    “`
    这样,你可以重新连接到之前的虚拟终端会话,并继续运行程序。

    3. 使用tmux命令:
    tmux命令和screen命令类似,可以创建一个虚拟终端会话,并在该会话中运行程序。通过tmux命令,你可以在不退出终端的情况下断开与会话的连接,并且可以方便地切换会话。使用tmux命令的基本语法如下:
    “`
    tmux new-session -s session_name
    “`
    创建了会话后,可以在会话中执行程序。当需要断开与会话的连接时,可以按下Ctrl + B,然后按下D键。重新连接到会话时,可以使用以下命令:
    “`
    tmux attach -t session_name
    “`
    这样,你可以重新连接到之前的虚拟终端会话,并继续运行程序。

    4. 使用后台运行命令:
    在Linux系统中,可以使用后台运行命令来使程序在后台继续运行,而无需使用特定的命令或工具。可以通过在命令后面加上&符号来将命令放到后台运行,例如:
    “`
    command &
    “`
    在运行命令之后,终端会立即返回一个进程ID,表示程序已经在后台运行。可以使用ps命令来查看程序是否仍在运行。可以使用fg命令将后台程序切换到前台。

    5. 使用disown命令:
    disown命令可以将一个正在运行的程序从当前shell会话中脱离出来,在终端退出之后程序仍然会继续运行。使用disown命令的语法如下:
    “`
    disown process_id
    “`
    这里的process_id是程序的进程ID,可以使用ps命令或者pgrep命令来获取。运行disown命令后,程序会从当前shell会话中脱离出来,并且不受终端退出的影响,继续在后台运行。

    通过以上几种方法,你可以在退出命令的同时保持程序的运行。根据实际需求,选择适合的方法来实现。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Linux中,有几种方法可以让一个命令或进程在后台继续运行,即使你已经退出了终端。

    1. 使用nohup命令
    nohup命令用来运行一个命令,并让它在后台运行。

    使用方法:
    “`shell
    nohup &
    “`

    例如,假设你想要运行一个名为myprogram的程序,你可以使用以下命令:
    “`shell
    nohup ./myprogram &
    “`

    执行这个命令后,程序将在后台继续运行,即使你退出了终端。该命令会将输入和输出重定向到nohup.out文件中。

    2. 使用 disown 命令
    disown命令用于将一个正在运行的作业从shell的进程组中分离出来,使其成为孤儿进程,并且不再受shell控制。这样,当你退出终端时,作业将继续在后台运行。

    使用方法:
    首先,使用Ctrl+Z键将当前正在运行的程序挂起到后台。
    然后,使用 `jobs` 命令查看作业的编号。
    最后,使用 `disown` 命令与作业编号结合使用。

    具体步骤如下:

    1. 挂起正在运行的程序:使用Ctrl+Z键

    2. 查看作业编号:使用 `jobs` 命令,会显示正在运行的作业列表,每个作业前都有一个作业编号。

    3. 使用disown命令:使用 `disown %` 命令将指定的作业从shell的进程组中分离出来,并使其成为孤儿进程。
    例如,如果要将作业编号为1的作业继续在后台运行,可以使用以下命令:
    “`shell
    disown %1
    “`

    执行这个命令后,作业将继续在后台运行,即使你退出了终端。

    注意:无论是使用nohup命令还是disown命令,都需要提前将程序放在后台执行(使用&符号),否则当你退出终端时,程序仍然会被终止。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部