远程执行文件替换重启脚本

有时需要更新文件,但是停止服务又会导致远程连接丢失,用脚本在远程ssh执行会更停止服务就断掉,后面的bash无法执行了,找了一下怎么挂在后台继续运行脚本,AI回答方法如下:

研究了下,基本使用办法2里面的nohup最简单,不用另外装东西。

To run a Bash command or script in the background, preventing it from blocking your terminal and allowing you to continue working, several methods are available:

1. Using the Ampersand (&) Operator:

Append an ampersand (&) to the end of your command or script execution. This will immediately place the process in the background.

Code

your_command_or_script &

For example:

Code

sleep 60 &

2. Using nohup:

The nohup command ensures that a process continues to run even if the terminal session is closed. It also redirects standard output and error to a file named nohup.out by default.

Code

nohup your_command_or_script &

To prevent output from being written to nohup.out, you can redirect standard output and error to /dev/null:

Code

nohup your_command_or_script > /dev/null 2>&1 &

3. Using Job Control (for already running processes):

If you have a process running in the foreground that you want to move to the background:

To bring a backgrounded process back to the foreground, use fg.

4. Using Terminal Multiplexers (e.g., screen or tmux):

Terminal multiplexers allow you to create persistent sessions that can be detached and reattached, effectively running processes in the background even if you close your terminal window.