后台执行脚本🌿
在Ubuntu中,有多种方法可以后台运行脚本。以下介绍其中三种常用的方式:
使用
nohup命令和&符号这是一种简单而常见的方式,可以将Shell脚本后台运行,即使关闭了当前终端窗口,脚本也能继续执行。例如:
bashnohup ./sh_client_bot.sh > output.log 2>&1 &上述命令将
my-script.sh脚本后台运行,并将输出重定向到output.log文件中。使用
screen命令
screen是一个强大的终端复用工具,可以在同一个窗口中同时运行多个会话,并且可以在不同会话之间切换。使用screen运行脚本时,可以在需要时进入/退出会话,而无需停止正在运行的程序。例如:bashscreen -S my-screen-session ./sh_client_bot.sh运行第一条命令后,进入一个名为
my-screen-session的新窗口。然后,在该窗口中运行./my-script.sh命令启动脚本。如果需要在后台运行该脚本,则可以按下快捷键Ctrl+A+D退出会话,此时脚本将在后台继续运行。使用
systemd服务
systemd是Linux系统的初始化系统和服务管理器,可以用于管理和监控后台服务。可以创建一个systemd服务单元,将需要后台运行的脚本作为服务来管理。例如:首先,创建一个名为
my-script.service的新服务单元,并将以下内容添加到其中:bash[Unit] Description=My Script Service [Service] ExecStart=/path/to/my-script.sh Restart=always User=username [Install] WantedBy=multi-user.target在上述配置中,
User参数指定了服务运行时所使用的用户;ExecStart指定了要运行的Shell脚本路径;Restart设置了几种情况下自动重启服务;WantedBy指定了系统启动时开始运行该服务的级别。将该文件存储在
/etc/systemd/system/目录中,然后运行以下命令启动服务并将其设置为开机启动:bashsudo systemctl start sh_client_bot.sh sudo systemctl enable sh_client_bot.sh这样,当系统启动时,该服务将自动后台运行,并且可以随时使用
systemctl命令来管理它。以上是三种在Ubuntu中后台运行脚本的常用方法,具体选择哪种方式取决于你的需求和个人喜好。