首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何获取当前正在执行脚本的绝对路径

dirname $0 最近在看脚本的时候经常发现有“dirname $0”这样一种表述,很是不解。...# get path to scripts scripts_dir=`dirname $0` 刚开始我还以为需要把dirname改成对应的路径,同时又不解$0在这里是表达什么含义。.../bin/bash cd `dirname $0` echo `pwd` 切到/home/zwang/1/2/3/4路径下,运行test.sh后就位于脚本所在的目录并输出路径了。...现在我们回头来把这个脚本拆开来理解一下 `` 表示执行引号内的命令 $0 表示当前执行脚本的文件名 dirname $0 表示获取当前执行脚本的路径 这样一来就能明白dirname $0是如何获取当前执行脚本的路径了吧.../bin/bash basepath=$(cd `dirname $0`; pwd) echo $basepath 此时输出的结果是脚本所在路径,但如果我换一种命令替换的方式 #!

1.8K20

查询正在运行的Top SQL的脚本(建议收藏)

这篇文章提供了一些现成的SQL脚本,通过查询V$SQLSTATS视图找到正在运行的TOP SQL,用于后续的优化。建议大家收藏,需要查询TOP SQL时直接复制和粘贴即可。...之前的一篇文章解释了为什么要使用V$SQLSTATS视图。 当数据库表现出各种不同的性能问题的症状时,您可以通过调整SQL语句中WHERE条件来查询需要优化的SQL。...对于SQL语句解析过多的现象,按照‘PARSE_CALLS’降序排列结果。 对于内存出现压力的现象,按照‘SHAREABLE_MEM’降序排列结果。...在某些情况下,例如当应用程序的代码不使用绑定变量时,根据SQL在单次执行中消耗的资源作为标准来查询TOP SQL可能更恰当。...,您可以根据您的数据库的特定情况,稍作修改后生成更适合的查询脚本。

20310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Docker - 如何SSH到正在运行的容器

    本文包含有关如何让Docker容器使用SSH与其他Docker容器连接的说明。如果我没有提到一个或多个重点,请随意评论/建议。...以下是本文稍后介绍的要点: 说明安装SSH 在现有容器上启用SSH的技巧 SSH到运行容器的技巧 说明安装SSH 如果你已经有一个正在运行的容器,并且你想通过SSH进行SSH连接并允许其他的Docker...在现有容器上启用SSH的技巧 完成上述操作后,就可以运行SSH守护程序了。...转到由上面创建的文件组成的文件夹,如set_root_pw.sh和run.sh 使用以下命令更改模式:chmod +x ./*.sh 在shell提示符下执行run.sh脚本:....以下是你如何公开22端口: 从容器中退出 使用以下命令提交docker容器镜像:docker commit 使用以下命令运行一个新的容器

    3.4K100

    【Rust调用Windows API】获取正在运行的全部进程信息

    依赖Rust调用Windows API需要引入依赖winapi,在Cargo.toml中添加依赖winapi = "0.3.9"调用不同的API集就需要使用相应的功能features,很好的一个判断方式是你在微软官方文档中看到的是在哪个头文件内...如果保存进程快照失败,返回的句柄会是一个无效的值(这里用了两个条件或的关系去判断是否无效,其实任用其一都可以,他们都表示一个“空”内存或“空”指针),使用 GetLastError 方法可以获取错误代码...结构体做一个包装,这里是为了节省不必要的计算,从句柄中直接读取出来的 PROCESSENTRY32 并不是所有信息都是Rust直接可读的,在需要时才解析,并且通过getter方法读取数据更方便以后拓展...,因此除了前面保存的快照句柄之外还要存储迭代的索引以及释放句柄的状态,迭代器是不可逆的。...utils::process::win包下面,具体引用路径根据自己的情况调整mod.rs文件use crate::utils::process::win::process_information::ProcessInformationIterator

    21620

    如何停止一个正在运行的线程?

    停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作。停止一个线程可以用Thread.stop()方法,但最好不要用它。...虽然它确实可以停止一个正在运行的线程,但是这个方法是不安全的,而且是已被废弃的方法。...在java中有以下3种方法可以终止正在运行的线程: 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止 使用stop方法强行终止,但是不推荐这个方法,因为stop和suspend及resume...: ... i=180136 i=180137 i=180138 i=180139 线程已经终止, for循环不再执行 这是for循环外面的语句,也会被执行 如何解决语句继续运行的问题呢?...关注微信公众号:Java技术栈,在后台回复:多线程,可以获取我整理的 N 篇最新多线程教程,都是干货。

    1.9K20

    如何暂停一个正在运行的线程?

    ,那么此时多线程调用短信接口是没有任何意义的,我们希望接口恢复后再对接口进行处理,那么此时怎么办呢,如何中止已经启动的线程呢?...其实在Java中有3种方式可以终止正在运行的线程: 使用stop方法强制退出:使用stop()方法强制终止线程,注意,强烈不推荐这种方式,并且该方法已经被标记为过期方法了。...设置标志位 设置标志位是用到了共享变量的方式,我们了解线程对于变量的操作都是操作的变量副本,而一旦使用 volatile关键字修饰后,因为其可见性,变量变更始将终从主存中获取最新值。...其实发生阻塞的情况是比较常见的,比如调用 Thread.join() 方法「当前线程陷入无限期的阻塞,join() 所属的线程对象正常运行run()方法,对join()方法不了解的小伙伴可以去百度了」,...所以,interrupt() + 手动抛异常的方式是目前中断一个正在运行的线程最为正确的方式了。

    2.1K31

    Docker - 如何SSH连接到正在运行的容器

    本文包含有关如何让Docker容器使用SSH与其他Docker容器连接的说明。如果我没有提到一个或多个重点,请随意评论/建议。...以下是本文稍后介绍的要点: 说明安装SSH 在现有容器上启用SSH的技巧 SSH到运行容器的技巧 说明安装SSH 如果你已经有一个正在运行的容器,并且你想通过SSH进行SSH连接并允许其他的Docker...在现有容器上启用SSH的技巧 完成上述操作后,就可以运行SSH守护程序了。...转到由上面创建的文件组成的文件夹,如set_root_pw.sh和run.sh 使用以下命令更改模式:chmod + x ./*.sh 在shell提示符下执行run.sh脚本:....以下是你如何开放22端口: 从容器中退出 使用以下命令提交Docker容器镜像:docker commit 使用以下命令运行一个新的容器

    2.6K60

    如何通过SSH进入正在运行的容器【Containers】

    登录Web控制台时,导航至项目概述,然后单击“应用程序”选项卡以获取Pod列表。选择一个(运行中的)窗格以打开应用程序的“详细信息”面板。...首先,获取正在运行的Pod的列表(或参阅Web控制台以获取活动Pod的列表)。 要获取该列表,请输入: $ oc get pods 您可以查看资源(窗格,内部版本或容器)的日志。...Remote shell 您可以附加到正在运行的容器。 这仍然不会在容器中打开外壳,但是会直接运行命令。...首先,确认您的Pod正在运行: $ kubectl get pods 只要列出了包含您的应用程序的Pod,就可以使用exec命令在容器中启动shell。...在dockerd守护程序运行的情况下,获取正在运行的容器的名称(如果您不在适当的组中,则可能必须使用sudo来提升特权): $ docker ps CONTAINER ID IMAGE

    3.4K00

    bash shell:获取当前脚本的绝对路径(pwdreadlink)

    https://blog.csdn.net/10km/article/details/51906821 有时候,我们需要知道当前执行的输出shell脚本的所在绝对路径,可以用dirname...我们知道 dirname 可以获取一个文件所在的路径,dirname的用处是: 输出已经去除了尾部的”/”字符部分的名称;如果名称中不包含”/”, 则显示”.”(表示当前目录)。...所以下面这样的代码中SHELL_FOLDER中不一定是绝对路径 SHELL_FOLDER=$(dirname "$0") 需要用cd和pwd命令配合获取脚本所在绝对路径,正确的写法是这样的, SHELL_FOLDER...=$(cd "$(dirname "$0")";pwd) 如果你觉得上面的写法比较麻烦,还有一个方式获取脚本的绝对路径,就是借助readlink命令,下面是readlink的命令行说明: ?...所以用readlink命令我们可以直接获取$0参数的全路径文件名,然后再用dirname获取其所在的绝对路径: SHELL_FOLDER=$(dirname $(readlink -f "$0")) 参考

    8.9K30

    如何杀掉pg数据库正在运行的sql

    我们在生产环境可能经常遇到长sql,长sql对数据库的影响还是挺大的,不仅可能对主机资源消耗较大,还可能会阻塞其他sql的正常执行,所以对于长sql我们要尤其注意。...登录pg数据库查看pg_stat_activity(pgxc架构使用pgxc_stat_activity)视图,通过query_start字段查看sql的开始运行时间,state字段表明了当前sql的状态...,一般有三种:active表示sql活跃正在执行;idle表示当前该连接空闲,上一条sql已经执行完毕,当前没有sql在执行;idle in transaction表示当前事务还未结束,事务中上一条sql...pg_stat_activity视图中还有个pid字段,这个字段是当前连接的进程/线程号,这个我们后面处理的依据。...如果想得到更精确的信息,可以使用explain performance命令来查看更详细的执行计划信息,值得注意的是explain不会真正执行sql,而explain performance会真正执行sql

    4K20

    如何在Linux中查看所有正在运行的进程

    它能显示当前运行中进程的相关信息,包括进程的PID。Linux和UNIX都支持ps命令,显示所有运行中进程的相关信息。ps命令能提供一份当前进程的快照。如果你想状态可以自动刷新,可以使用top命令。...ps命令 输入下面的ps命令,显示所有运行中的进程: # ps aux | less 其中, -A:显示所有进程 a:显示终端中包括其它用户的所有进程 x:显示无控制终端的进程 任务:查看系统中的每个进程...# ps -A # ps -e 任务:查看非root运行的进程 # ps -U root -u root -N 任务:查看用户vivek运行的进程 # ps -u vivek top命令 top命令提供了运行中系统的动态实时视图...显示进程的树状图 pstree以树状显示正在运行的进程。树的根节点为pid或init。如果指定了用户名,进程树将以用户所拥有的进程作为根节点。...pgrep能查找当前正在运行的进程并列出符合条件的进程ID。例如显示firefox的进程ID: $ pgrep firefox 下面命令将显示进程名为sshd、所有者为root的进程。

    62K71

    如何获取Hive正在执行或已结束的SQL语句

    本文主要介绍两种方式来获取Hive正在执行或者已结束的的MapReduce作业的SQL语句,一种是通过MapReduce API获取执行作业的xml配置文件,另一种是通过Cloudera Manager...---- 1.通过YARN执行作业的xml配置文件 1.通过Hue执行SQL查询,Job Browser页面可以获取该SQL执行的ApplicationID,如下: image.png 2.通过ApplicationID...获取正在执行作业的配置信息,执行如下: curl -H "Accept: application/json" -X \ GET http://master:8088/proxy/application_...,可获取运行中Hive作业的SQL语句,该信息对应HDFS的 /user/$USER/.staging/$JOBID/job.xml文件 3.如果作业执行完成将接口改为JobHistory的API...接口,可获取Hive历史作业执行SQL语句,该信息对应HDFS的/user/history/done/2018/08/28/000000/job_1534299721148_0845_conf.xml文件

    10K00

    Docker - 如何使用SSH连接到正在运行中的容器

    本篇文章主要介绍了如何使用SSH将你的Docker容器与其他Docker容器进行连接的方法,如果我忽略了一个或多个重点,请随意评论/建议。...以下是本篇文章中的几个重要步骤: 如何安装SSH 在现有容器上运行SSH的方法 使用SSH连接到其他运行中容器的方法 如何安装SSH 如果你已经有一个正在运行的docker容器,并且你想通过SSH...另外,上面介绍的方法在CentOS上运行的也很好。 在现有容器上启用SSH的方法 完成上述操作后,就可以运行SSH了。...进入上面创建的文件夹,里面有我们创建的set_root_pw.sh和run.sh文件 使用以下命令更改模式:chmod + x ./*.sh 使用以下命令在shell提示符下执行run.sh脚本:....下面教你如何打开22端口: 从容器中退出 使用以下命令提交docker容器的镜像:docker commit 使用以下命令运行一个新的容器

    5.4K70
    领券