linux下后台脚本执行命令

worktile 其他 15

回复

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

    Linux下执行后台脚本的命令是nohup。

    nohup命令用于在后台执行命令,并且忽略所有挂断(hangup)信号。这意味着即使退出终端或关闭SSH连接,后台脚本仍然会继续执行。

    使用nohup命令执行后台脚本的语法如下:

    nohup > 2>&1 &

    其中,是要执行的脚本命令,是输出结果的文件名。2>&1表示将标准错误输出重定向到标准输出,&表示在后台运行命令。

    例如,要在后台执行一个名为script.sh的脚本并将输出保存到output.log文件中,可以使用以下命令:

    nohup ./script.sh > output.log 2>&1 &

    执行完命令后,可以通过查看output.log文件来查看脚本的执行结果。

    此外,还可以使用Ctrl+C来终止正在后台执行的脚本。可以使用以下命令查找并终止脚本的进程:

    ps -ef | grep script.sh

    然后找到脚本的进程ID(PID),使用以下命令终止脚本的运行:

    kill

    注意,如果没有指定output-file参数,则nohup命令会将输出重定向到一个默认的nohup.out文件中。

    希望以上内容对你有所帮助!

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

    在Linux下,可以使用一些工具和技巧来在后台执行脚本命令,以下是一些常用的方法:

    1. 使用&符号:在命令的末尾加上一个&符号可以让该命令在后台运行。例如:`./script.sh &`。

    2. 使用nohup命令:nohup命令可以在后台运行命令,并且不受终端关闭的影响。例如:`nohup ./script.sh &`。nohup命令会将命令的输出重定向到nohup.out文件中。

    3. 使用disown命令:如果已经在前台运行了一个命令,可以使用disown命令将其转移到后台运行。首先使用Ctrl+Z将命令挂起,然后使用bg命令将其转移到后台,最后使用disown命令将其与终端分离。例如:`Ctrl+Z`、`bg`、`disown`。

    4. 使用screen命令:screen命令可以创建一个虚拟终端,并在其中运行命令。即使终端关闭,命令仍然会在虚拟终端中继续运行。首先使用screen命令创建一个新的虚拟终端,然后在其中运行命令。例如:`screen`、`./script.sh`。要在虚拟终端中切换,请使用Ctrl+A+D。

    5. 使用tmux命令:tmux命令也可以创建虚拟终端并在其中运行命令,与screen类似。首先使用tmux命令创建一个新的虚拟终端,然后在其中运行命令。例如:`tmux new-session -s session_name ‘./script.sh’`。要在虚拟终端中切换,请使用Ctrl+B+D。

    这些方法可以让脚本在后台运行,使您能够在终端中执行其他任务而不中断脚本的执行。请根据您的需求选择适合的方法。

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

    在Linux下,我们可以使用多种方法将脚本设置为后台执行。

    方法一:使用&符号

    使用&符号可以将命令或脚本放入后台执行。例如,执行以下命令将脚本设置为后台执行:

    “`
    $ ./script.sh &
    “`

    方法二:使用nohup命令

    nohup命令可以在脚本后台执行,同时将输出重定向到nohup.out文件。以下是使用nohup命令执行脚本的示例:

    “`
    $ nohup ./script.sh &
    “`

    方法三:使用disown命令

    disown命令可以将正在运行的作业从shell的作业列表中删除,使其成为后台作业。示例如下:

    “`
    $ ./script.sh
    ctrl + z # 暂停脚本的执行
    $ bg # 将脚本切换到后台执行
    $ disown # 从shell的作业列表中删除脚本
    “`

    方法四:使用screen命令

    screen命令可以在单个终端窗口中创建多个虚拟终端会话,并允许在会话之间切换。以下是使用screen命令创建会话并在会话中执行脚本的示例:

    “`
    $ screen # 创建一个新的会话
    $ ./script.sh # 在会话中执行脚本
    ctrl + a + d # 分离会话,返回到原来的终端窗口
    “`

    可以使用以下命令重新连接到分离的screen会话:

    “`
    $ screen -r
    “`

    方法五:使用at命令

    at命令可以将命令或脚本计划在指定的时间运行。以下是使用at命令执行脚本的示例:

    “`
    $ at now + 1 minute # 在当前时间的1分钟后执行脚本
    at> ./script.sh
    at> ctrl + d # 结束输入
    “`

    上述方法可以将脚本设置为后台执行,但必须注意,后台执行的脚本可能无法接收用户输入。因此,在编写脚本时应注意避免需要用户干预的情况。并且在后台执行的脚本在设置环境变量、相对路径等方面要特别小心。

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

400-800-1024

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

分享本页
返回顶部