ubantu操作命令行

ubantu关闭了命令行窗口后,让脚本继续运行

在Ubuntu系统中,可以使用nohup命令让脚本在后台运行,并且不被关闭命令行窗口的操作影响。具体实现步骤如下:

  1. 打开终端,执行以下命令:

    nohup ./your_script.sh > /dev/null 2>&1 &
    

    在这个命令中,nohup命令用于在后台运行指定的脚本,./your_script.sh为需要运行的脚本路径,> /dev/null 2>&1用于将脚本的输出重定向到空设备,从而避免在关闭命令行窗口时出现错误提示信息。最后的&表示在后台运行该命令。

  2. 执行命令后,脚本会在后台运行,即使关闭了命令行窗口,脚本也会继续执行。如果需要查看脚本的输出信息,可以使用以下命令:

    tail -f nohup.out
    

    在这个命令中,tail命令用于查看文件末尾的若干行内容,-f参数表示实时刷新显示文件的最新内容,nohup.out为脚本输出的日志文件,默认情况下会在当前目录下生成。执行命令后,终端会实时显示脚本的输出信息,直到手动终止该命令。

查看当前进程

ps -ef

查看指定后缀执行文件的进程

.py是指python文件,如果需要查看指定的文件是否在运行,则把文件名加上

ps -ef | grep .py

执行后输出如下,出现python3 main-run.py表示该程序正在运行

root         801       1  0 09:46 ?        00:00:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
root        2460       1  0 10:05 pts/0    00:00:00 python3 main-run.py
root        3111    2949  0 10:22 pts/1    00:00:00 grep --color=auto .py

查看指定字段文件的进程ID

auto是指查询文件名包含auto这个字符串的进程ID,直接返回进程ID,

pgrep -f auto

结束进程

  1. 如果是当前窗口正在运行的进程,直接Ctrl+C即可结束杀死该进程
  2. 如果是已经在后台运行的,只能通过进程ID来结束
    比如某个进程ID2460,执行以下命令即可。-9是横杆加数字九,后面跟着进程ID,正常执行后没有任何返回值
    kill -9 2460
    

执行python程序

python3 test.py

执行nodejs程序

node test.js

自动重启进程

  1. program_path是控制目标进程的文件路劲
  2. nohup python3 $program_path > /dev/null 2>&1 & # 重启Python程序控制执行shell命令
#!/bin/bash
program_path="main-run.py"  # 指定需要重启的程序路径

process_num=$(ps -ef | grep "$program_path" | grep -v grep | wc -l)  # 检查程序是否在运行
if [ "$process_num" -eq 0 ]
then
    flag=1
else
    flag=0
fi
while true
do
    process_num=$(ps -ef | grep "$program_path" | grep -v grep | wc -l)  # 检查程序是否在运行
    if [ "$process_num" -eq 0 ]
    then
        if [ $flag == 0 ]
        then
            count=0
        fi
        flag=1
        echo "程序未运行,正在重启...$((count*10)) S"
        nohup python3 $program_path > /dev/null 2>&1 &  # 重启Python程序
    else
        if [ $flag == 1 ]
        then
            count=0
        fi
        flag=0
        echo "程序正在运行...$((count*10)) S"
    fi
    count=$((count+1))
    sleep 10  # 等待10秒后再次检查程序状态
done

执行过程,中途被结束或者异常退出时会自动重启

root@hecs-235304:~/serverRoom/tcpServerSysterm-3routGateway# ./auto-run-tcpServer.sh 
程序正在运行...0 S
程序正在运行...10 S
程序正在运行...20 S
程序正在运行...30 S
程序正在运行...40 S
程序正在运行...50 S
程序正在运行...60 S
程序正在运行...70 S
程序未运行,正在重启...0 S
程序正在运行...0 S

监控自动重启js程序

www是一个没有后缀的执行程序

 nodemon --watch . --ext www --exec 'forever restartall'

链接下载

wget [url]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu是一种Linux操作系统,它提供了强大的命令行工具来进行各种操作。以下是一些常用的Ubuntu命令行操作: 1. ls:列出当前目录下的文件和文件夹。 2. cd:切换到指定目录。例如,cd /home 将进入名为"home"的目录。 3. pwd:显示当前所在路径。 4. mkdir:创建一个新的目录。例如,mkdir myfolder 将创建一个名为"myfolder"的文件夹。 5. rm:删除文件或目录。使用 rm -r 命令可以删除一个非空的目录。请小心使用该命令,以防止意外删除。 6. cp:复制文件或目录。例如,cp file1.txt file2.txt 将文件"file1.txt"复制到"file2.txt"。 7. mv:移动文件或目录,或者重命名文件。例如,mv file1.txt /tmp 将文件"file1.txt"移动到/tmp目录。 8. touch:创建一个新文件。例如,touch myfile.txt 将创建一个名为"myfile.txt"的空文件。 9. cat:显示文件内容。例如,cat myfile.txt 将在命令行中显示"myfile.txt"文件的内容。 10. grep:在文件中搜索指定的字符串。例如,grep "hello" myfile.txt 将在"myfile.txt"中搜索包含"hello"的行。 11. apt-get:管理软件包的工具。使用 apt-get install package_name 命令可以安装指定软件包。 12. sudo:以管理员权限运行命令。有些操作需要管理员权限才能执行,使用sudo命令可以提升权限。 这只是一小部分常用的Ubuntu命令行操作,还有很多其他强大的命令可供使用。希望以上信息能对你有所帮助!如果你有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值