linux如何让sh命令一直存活

fiy 其他 192

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux操作系统中,要让sh命令一直存活,可以使用以下几种方法:

    1. 使用nohup命令:nohup命令可以在后台运行一个命令,并且将输出重定向到指定的文件。使用nohup命令可以让sh命令在后台一直运行,并且即使退出终端也不会终止该命令的执行。

    “`
    nohup sh your_script.sh > output.log 2>&1 &
    “`

    上述命令中,your_script.sh是你要执行的sh命令脚本文件,output.log是你要保存输出结果的文件名。使用2>&1将标准错误输出重定向到标准输出,再将标准输出重定向到output.log文件。

    2. 使用screen命令:screen命令可以创建一个虚拟终端,并在其中运行一个或多个命令。使用screen命令可以在一个screen会话中运行sh命令,并且即使关闭终端也不会终止该会话。

    首先,安装screen命令:

    “`
    sudo apt-get install screen
    “`

    然后,创建一个screen会话并运行sh命令:

    “`
    screen -S session_name sh your_script.sh
    “`

    上述命令中,session_name是你给这个screen会话起的名字,your_script.sh是你要执行的sh命令脚本文件。

    要离开这个screen会话,可以使用快捷键Ctrl+A,然后按下d键。要重新连接到这个会话,可以使用以下命令:

    “`
    screen -r session_name
    “`

    3. 使用systemd服务:如果你的Linux发行版使用systemd作为init系统,可以将sh命令作为一个systemd服务来运行。

    首先,创建一个service文件,比如mysh.service:

    “`
    sudo nano /etc/systemd/system/mysh.service
    “`

    在mysh.service文件中,写入以下内容:

    “`
    [Unit]
    Description=My SH Command
    After=network.target

    [Service]
    ExecStart=/bin/sh your_script.sh
    Restart=always

    [Install]
    WantedBy=default.target
    “`

    保存并关闭文件。

    然后,重新加载systemd配置:

    “`
    sudo systemctl daemon-reload
    “`

    启动mysh服务:

    “`
    sudo systemctl start mysh
    “`

    设置mysh服务开机自启动:

    “`
    sudo systemctl enable mysh
    “`

    通过以上三种方法,你可以让sh命令一直在Linux系统中存活,并且不受终端关闭或退出的影响。根据具体情况选择适合你的方法来实现。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    要让sh命令一直保持活动状态,可以采取以下几种方法:

    1. 使用nohup命令:可以使用nohup命令在后台运行sh命令,即使当前终端关闭,命令也会继续运行。nohup命令会将输出重定向到nohup.out文件中,可以使用`nohup sh your_script.sh &`的方式来运行脚本。

    2. 使用screen命令:screen是一个终端多路复用工具,可以在一个终端窗口中创建多个会话,并可以在会话间切换。通过创建一个新的screen会话,可以在其中运行sh命令,并在需要时切换到该会话进行操作,即使终端关闭,会话也会继续运行。可以使用`screen -S session_name`命令创建新的会话,然后在会话中运行sh命令。

    3. 使用systemd守护进程:可以创建一个systemd服务来管理sh命令的运行。首先创建一个.service文件,定义服务的配置和脚本的路径,然后启动服务。系统会在后台维护该服务,并在系统启动时自动启动该服务。

    4. 使用crontab定时任务:可以使用crontab定时任务来定期执行sh命令。通过编辑crontab文件,添加定时执行sh命令的规则,指定脚本的路径和执行频率。系统会在设定的时间自动执行sh命令。

    5. 使用tmux命令:tmux是一个类似于screen的终端多路复用工具,可以在一个终端窗口中创建多个会话,并在会话间切换。通过创建一个新的tmux会话,可以在其中运行sh命令,并在需要时切换到该会话进行操作,即使终端关闭,会话也会继续运行。可以使用`tmux new-session -s session_name`命令创建新的会话,然后在会话中运行sh命令。

    通过上述方法,可以让sh命令在Linux中一直保持活动状态,即使终端关闭或系统重启。这对于需要长时间运行的脚本或服务非常有用。

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

    让sh命令一直存活可以使用一些方法和技巧。以下是一些可能的方法和操作流程:

    1. 使用nohup命令:nohup命令可以在后台运行一个命令,并将输出重定向到一个日志文件中。使用该命令可以使sh命令在终端关闭后继续执行。具体操作流程如下:

    1. 打开终端并登录到您的Linux系统。
    2. 在终端中输入以下命令,并将您想要一直运行的sh命令替换掉`your_script.sh`:
    “`
    nohup sh your_script.sh > your_log.log &
    “`
    这将使sh命令在后台运行,并将输出重定向到`your_log.log`文件中。
    3. 您可以关闭终端,并且sh命令将持续运行。您可以使用`tail -f your_log.log`命令来查看正在输出到日志文件的内容。

    2. 使用screen命令:screen命令是一个终端复用器,它允许您在单个终端中创建多个会话,并可以在会话之间切换。使用该命令可以创建一个持续运行的sh会话。具体操作流程如下:

    1. 打开终端并登录到您的Linux系统。
    2. 在终端中输入以下命令来创建一个新的screen会话:
    “`
    screen -S session_name
    “`
    这将创建一个名为session_name的新会话。
    3. 在新的screen会话中,输入以下命令来运行您的sh命令:
    “`
    sh your_script.sh
    “`
    这将使sh命令在该会话中持续运行。
    4. 您可以使用以下快捷键来切换到其他会话:
    – Ctrl+a n:切换到下一个会话。
    – Ctrl+a p:切换到上一个会话。
    – Ctrl+a d:断开当前会话,但会话仍然在后台运行。
    5. 当您再次需要回到sh命令时,可以使用以下命令重新连接会话:
    “`
    screen -r session_name
    “`

    3. 使用systemd服务:如果您的Linux系统使用systemd作为初始化系统,您可以创建一个systemd服务来持续运行sh命令。具体操作流程如下:

    1. 使用您喜欢的文本编辑器创建一个新的服务单元文件,例如`your_service.service`。
    2. 在服务单元文件中,添加以下内容:
    “`
    [Unit]
    Description=Your Service Description
    After=network.target

    [Service]
    ExecStart=/bin/sh -c ‘your_script.sh’
    Type=simple
    Restart=always

    [Install]
    WantedBy=multi-user.target
    “`
    请确保将`your_script.sh`替换为您想要一直运行的sh命令。
    3. 将服务单元文件保存在`/etc/systemd/system/`目录下。
    4. 在终端中输入以下命令来启动您的服务:
    “`
    sudo systemctl start your_service
    “`
    您的sh命令将开始运行,并且将在系统启动时自动启动。
    5. 如果您需要停止该服务,可以使用以下命令:
    “`
    sudo systemctl stop your_service
    “`

    请注意,以上方法都可以让sh命令持续运行,但这并不意味着sh命令始终处于活动状态,可能会因为异常终止或其他原因而停止。因此,建议监控您的sh命令,并在需要时采取适当的措施来重新启动它。

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

400-800-1024

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

分享本页
返回顶部