在Linux终端命令中经常要使用到在关闭终端界面的情况下需要后台挂起执行的进程,也就是关闭终端后台任务的进程还是会常驻,下面就简单介绍下 nohup 命令1. nohupnohup 英文全称 no hang up(不挂起),默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到$HOME/nohup.out 文件中,经常与 & 符号配合执行,使得程序在后台执行语法格式: nohup Command [ Arg … ] [ & ]参数说明:Command:要执行的命令Arg:一些参数,可以指定输出文件&:让命令在后台执行, nohup.out 文件中去,加不加 & 并不会影响这个命令,只是让程序前台或者后台运行如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中如:nohup 这意味着如果程序有任何错误消息,它们会被记录在这个xdr.log文件里,而不是显示在终端上程序的正常输出被丢弃,错误输出则被记录到xdr.log文件中参考:【Linux】nohup执行jar包
我们再用nohup开启试下: ➜ ~ nohup sleep 100 & [1] 23597 nohup: ignoring input and appending output to 'nohup.out' ➜ ~ jobs -l [1] + 23597 running nohup sleep 100 ➜ ~ ps -ef | grep sleep yt 23597 23065 0 19:22 pts/0 00:00:00 sleep 100 ➜ 00:00:00 sleep 100 ➜ ~ kill 23597 ➜ ~ ps -ef | grep sleep 我们可以看到,即使shell退出了,sleep也没有退出,因为nohup使sleep
例如当前脚本文件是/shell/a.sh 1.当前终端下后台运行 /shell/a.sh & 注:只使用&符号,只是在当前终端下后台运行,当当前终端退出以后,脚本自动停止。 2.退出终端依然在后台运行 nohup /shell/a.sh & nohup 可以实现在退出当前终端以后依然可以在后台持续运行。
导读 前几篇写了k8s的概念以及使用k8s进行简单的应用部署,今天写一下k8s的基本使用。 由于k8s的资源都是可以使用yaml文件进行描述,所以也顺便写一下yaml的使用。 1、基本语法 大小写敏感 使用缩进表示层级关系 缩进不允许使用tab,只允许空格 缩进的空格数不重要,只要相同层级的元素左对齐即可 '#'表示注释 2、数据类型 对象:键值对的集合,又称为映射(mapping : A age: 20 - name: B 5、纯量 纯量是最基本的,不可再分的值,包括:字符串、布尔值、整数、浮点数、Null、时间、日期 boolean: - TRUE #true, (2)使用yaml文件删除 如果Namespace是使用yaml文件创建的,也可以使用yaml文件进行删除 kubectl delete -f liusy-02-ns.yaml ? 如果Pod在某个命名空间,也需要指定-n参数 (2)使用yaml文件 如果Pod是使用yaml文件创建的,也可以使用yaml文件删除 kubectl delete -f test_pod.yaml
Linux :忘记使用nohup该如何补救 目录 Linux :忘记使用nohup该如何补救 0x00 摘要 0x01 问题描述 1.1 为何关闭进程 1.2 nohup 作用 0x02 简述 2.1 此时你突然发现自己没有使用 nohup,这就意味着这个程序在自己离开之后会死掉。之前两个小时的运行时间就浪费了。 于是你满怀悔恨的按下了CTR+c,然后使用 nohup 重新运行程序。 重定向标准输出和标准错误到文件nohup.out。 也就是说,nohup命令实际上将子进程与它所在的 session 分离了。所以当shell窗口关闭时候,nohup 命令所在的进程也不会被结束。 0x02 简述 如果忘记使用了 nohup,该如何补救? 这样就达到了 nohup 相同的作用。
0x00 概述 在linux定时任务crontab中使用nohup不输出到nohup文件,这时候需要做个重定向,将输出结果重定向到nohup文件即可. 0x02 增加重定向 最初的shell脚本,注意该脚本在命令行正常运行是可以把输出自动只想 nohup.out文件的 #! ,nohup输出是追加到日志文件,这样不会覆盖掉之前的日志文件 else echo "runing....." fi 在命令行直接sh这个脚本文件, 脚本的输出会自动定向到脚本同级目录的nohup.out 文件内; 但是当把这个脚本挂载到定时任务crontab内, 脚本的输出则不会定向到脚本同级目录的nohup.out文件内; 这时候需要做个重定向,注意两个脚本的区别: #! -ne 0 ] #如果没有 then echo "start process....." nohup python /home/hlz/Desktop/test.py >> /home
使用 nohup 部署和后台运行 Java 项目 1. 下载示例项目 首先,我们选择了Spring官方的PetClinic项目作为示例。 构建项目 进入项目目录,使用Maven或Gradle进行项目构建。如果使用Maven,执行以下命令: cd spring-petclinic . 也可以直接使用xshell 直接拖动jar包到xshell的jar文件夹下面 4. 使用 nohup 启动 Java 项目 输入nohup java -jar xxx.jar >> api.log &可以运行 可以看到生成了一个api.log日志文件,通过cat命令可以看我们这个项目运行时候的状态 解决方案看这篇文章:java: 无法访问org.springframework.boot.SpringApplication解决办法 小注意 一般在使用nohup之前先用java -jar运行一下
继续前几篇内容,讲解hbase基本使用 1.进入hbase shell: hbase有很多种操作方式,比如shell,java客户端,webUI等,可以直接输入hbase进行提示 [root@master ~]# date Fri Sep 8 22:50:06 CST 2017 [root@master ~]# hbase Usage: hbase [<options>] <command> [<args CLASSNAME Run the class named CLASSNAME [root@master ~]# 进入shell [root@master ~]# date Fri Sep 8 Type "exit<RETURN>" to leave the HBase Shell Version 1.3.1, r930b9a55528fe45d8edce7af42fef2d35e77677a
对于不是很复杂的程序,额可以使用直接调试法进行程序的调试。 1.如果程序出错或者给出警告信息,仔细分析出错或警告信息,会得到出错的原因。 matlab提供的m文件分析工具包括code analyzer和profiler工具,他们都有图形操作界面,使用起来还是非常方便的。 3.编程技巧 (1)计时:采用函数tic和toc进行计时,使用函数etime进行计时,利用cputime进行计时 (2)防止程序进入死循环 (3)如果必须使用多重循环,但是两个循环执行的次数不同,建议在外循环次数少的
Linux中nohup和&配合使用说明,以及使用时2>1& 的解释,还有Linux进程查询等命令 1.nohup和&后台运行 1.1 nohup 功能:不挂断运行命令 语法 :nohup Command [ Arg … ] [ & ] 无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。 1.2 & 功能:命令在后台运行,功能与Ctrl+z相同,一般配合nohup一起使用 eg:nohup ~/user/test.sh>output.log 2>&1 & 命令详解: nohup ~/user ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。 常用命令:ps -aux a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分 通常与nohup &配合使用,用于查看后台进程ID 配合 kill命令杀掉程序 常用命令
基于以上的几点考虑,Java 设计者在 Java 8 版本中,引入了流的概念,来帮助您节约时间!并且有了 lambda 的参与,流操作的使用将更加顺畅! ,输出如下: 本计算机的核数:8 655028378 单线程计算耗时:4159 655028378 多线程计算耗时:540 并行流的内部使用了默认的 ForkJoinPool 分支/合并框架 二、流基本操作 ---- 至少我们从上面了解到了,流操作似乎是一种很强大的工具,能够帮助我们节约我们时间的同时让我们程序可读性更高,下面我们就具体的来了解一下 Java 8 带来的新 API Stream 分析如下: 对于基本类型Stream串行迭代的性能开销明显高于外部迭代开销(两倍); Stream并行迭代的性能比串行迭代和外部迭代都好。 分析,对于基本类型: 使用Stream并行API在单核情况下性能很差,比Stream串行API的性能还差; 随着使用核数的增加,Stream并行效果逐渐变好,比使用for循环外部迭代的性能还好。
基于以上的几点考虑,Java 设计者在 Java 8 版本中,引入了流的概念,来帮助您节约时间!并且有了 lambda 的参与,流操作的使用将更加顺畅! ,输出如下: 本计算机的核数:8 655028378 单线程计算耗时:4159 655028378 多线程计算耗时:540 并行流的内部使用了默认的 ForkJoinPool 分支/合并框架,它的默认线程数量就是你的处理器数量 二、流基本操作 ---- 至少我们从上面了解到了,流操作似乎是一种很强大的工具,能够帮助我们节约我们时间的同时让我们程序可读性更高,下面我们就具体的来了解一下 Java 8 带来的新 API Stream System.out.print("C" + x)); // ==============输出:=============== // A1 // A2 // A3 // A4 // A5 // A6 // A7B7C7 // A8B8C8 分析,对于基本类型: 使用Stream并行API在单核情况下性能很差,比Stream串行API的性能还差; 随着使用核数的增加,Stream并行效果逐渐变好,比使用for循环外部迭代的性能还好。
1.算术操作 如果是定点数处理时候,需要遵循的原则是:大数据不溢出,小数据不损失 2.算数赋值 #include<iostream> #include<iomanip> #include"addaco
基本操作 # 编辑配置文件 kubectl edit deployment/recvehicle-youtu-service -o yaml --save-config -n timatrix-test
如果 kube-apiserver 是用 systemd 管理的,则需要登录到 master 节点上,然后使用 journalctl -u kube-apiserver 查看其日志。 如果 kube-scheduler 是用 systemd 管理的,则需要登录到 master 节点上,然后使用 journalctl -u kube-scheduler 查看其日志。 kube-dns 日志 PODNAME=$(kubectl -n kube-system get pod -l k8s-app=kube-dns -o jsonpath='{.items[0].metadata.name 查看 Kubelet 日志需要首先 SSH 登录到 Node 上,推荐使用 kubectl-node-shell而不是为每个节点分配公网 IP 地址。比如: #! k8s-version=$(kubectl version | base64 | tr -d '\n')" kubectl patch svc $(kubectl get svc -n weave |grep
make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说大多数编译器都有这个命令,使用make可以是重新编译的次数达到最小化。 makefile文件的规则可以非常复杂,比C程序还要复杂,平常使用实际用不了那么多 接下来,介绍它的使用方法: ? #通配符 %表示任意字符 $@表示冒号前target $^表示冒号后得源文件 %:%.c gcc -o $@ $^ clean: rm -rf $(OBJECT) 使用通配符非常便利
基本使用, 废话就不多说了,直接搂它... 一、基本知识 先了解一些基本东西: 定义 相关API 1.1、定义: Key Value Coding,取其三个单词首字母浓缩而成。 二、基本使用 1.1、常规取值赋值 访问属性成员: 正常点语法取值赋值 貌似很平常,没什么特别.. 继续.. 访问非属性成员: 点语法用不了, 只能使用箭头来访问成员变量 点语法的实际是调用了setter, getter方法,貌似也很平常,没什么特别.. 继续..
django.contrib.messages.context_processors.messages', ], }, }, ] 五、定义模板 index.html 目的 作为主页使用 DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-<em>8</em>"> <title>主页</title> </head> <body> DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-<em>8</em>"> <title>用户信息</title> <style>
JdbcTemplate基本使用
JDBC已经能够满足大部分用户最基本的需求,但是在使用JDBC时,必须自己来管理数据库资源如:获取PreparedStatement,设置SQL语句参数,关闭连接等步骤 JdbcTemplate是Spring对JDBC的封装,目的是使JDBC更加易于使用。JdbcTemplate是Spring的一部分。JdbcTemplate处理了资源的建立和释放。 org.springframework.jdbc.core.JdbcTemplate类方便执行SQL语句
public JdbcTemplate(DataSource dataSource)
创建JdbcTemplate对象,方便执行SQL语句
JdbcTemplate使用步骤