检查命令是不是在 bashrc 中运行

     2023-02-25     215

关键词:

【中文标题】检查命令是不是在 bashrc 中运行【英文标题】:check if command is running in bashrc检查命令是否在 bashrc 中运行 【发布时间】:2014-10-21 07:58:06 【问题描述】:

这是我的问题。由于我的保管箱文件夹存在自动同步问题。我必须在我的 .bashrc 中添加“~/.dropbox-dist/dropboxd &”。因此,每当我打开终端时,它都会自动开始同步。当我想在终端中添加另一个选项卡时,就会出现问题。我收到以下警告:“另一个 Dropbox (8664) 实例正在运行! ”。 虽然它不影响我的保管箱,但它很烦人。 我搜索了但不幸的是我在网上找不到解决方案。因此,我们将提前感谢任何帮助。

谢谢

【问题讨论】:

Linux/Unix command to determine if process is running? 的可能重复项 这听起来不像是应该在.bashrc 中而是在启动时运行的命令。你试过了吗? 使用ps(和-C)检查进程是否正在运行,如果没有则启动。或者,如果您不想看到错误消息,只需启动并将错误消息重定向到 /dev/null @TimZimmermann 谢谢,我如何在启动时运行它,关键是我没有 root 访问权限。 您可以创建一个在重新启动时运行的 cronjob,假设您使用的是支持它的 Linux。尝试运行 crontab -e 并添加行 @boot /home/user/.dropbox-dist/dropboxd。请注意绝对路径而不是~,因此您必须替换您的用户名。 【参考方案1】:

将它添加到你的 .bashrc

ps cax | grep dropbox > /dev/null
if [ $? -eq 0 ]; then
  echo "Process is running."
else
  ~/.dropbox-dist/dropboxd &
  echo "Process is not running."
fi

【讨论】:

如果系统上的另一个用户正在运行它,这将错误地将进程标记为已运行。此外,grep 将匹配包含 dropbox 作为子字符串的进程名称,而不仅仅是完全匹配(尽管可以使用更严格的正则表达式和/或其他选项来修复)。 当然,任何看起来像 pipeline; if [ $0 -eq 0 ]; then 的东西都更符合地道写作 if pipeline; then【参考方案2】:

为您的 .bashrc 添加一个守卫,仅在它尚未运行时运行它。

pidof -c dropboxd || ./~dropbox-dist/dropboxd &

(这是假设您拥有 pidof,但在大多数现代 Linux 发行版上应该是微不足道的。)

【讨论】:

如果可能有多个用户运行相同的命令,您可能希望在参数中指定 pidof 的完整路径。不幸的是,似乎没有只检查您自己的流程的选项。但很可能只有您会从主目录树运行二进制文件。【参考方案3】:

根据@tripleee 的回答构建,以下内容适用于official Dropbox Python control script(例如,用于无头数字海洋盒)并且不会在屏幕上输出 pid:

pidof -c dropbox > /dev/null || ~/bin/dropbox.py start # start dropbox

假设您已将 dropbox.py 存储在 ~/bin 中并标记为可执行文件。

【讨论】:

不完全清楚您从哪里获取 python 脚本 - 您的意思是 this 吗? @SimonMᶜKenzie 是的官方 dropbox.py,非图形 Linux 系统需要它。我现在已经编辑澄清。

检查进程是不是在 Windows 上运行?

】检查进程是不是在Windows上运行?【英文标题】:CheckifaprocessisrunningornotonWindows?检查进程是否在Windows上运行?【发布时间】:2011-12-0821:12:00【问题描述】:我正在尝试创建一个python脚本,稍后我将作为服务运行该脚本。现在我... 查看详情

检查命令是不是在批处理文件中可用

】检查命令是不是在批处理文件中可用【英文标题】:Checkwhethercommandisavailableinbatchfile检查命令是否在批处理文件中可用【发布时间】:2012-05-2800:59:27【问题描述】:我正在为Windows编写一个批处理文件并使用命令7z(7-Zip)。我已将... 查看详情

在linux系统下,添加安装路径添加到.bashrc文件中去的问题

我在ubuntu下运行安装教程中的命令如下:然后将你的安装路径:/home/username/MGLTools-1.5.0/share/bin添加到.bashrc文件中去exportPATH=exportPATH="/home/yangcao/MGLTools-1.5.0/bin:"$PATH在执行source.bsharc就OK了。然后打开终端,输入adt并回车,就... 查看详情

BASH 和/或 .BASHRC 在 SU 或 SSH 登录后无法正常工作,除非运行“bash”命令

.../或.BASHRC在SU或SSH登录后无法正常工作,除非运行“bash”命令【英文标题】:BASHand/or.BASHRCnotworkingproperlyafterSUorSSHloginunlessrun"bash"command【发布时间】:2012-01-2607:22:00【问题描述】:我有一台运行Ubuntu10.04的AmazonEC2机器。默... 查看详情

如何在 C# 中检查代码是不是在 AOT 中运行?

】如何在C#中检查代码是不是在AOT中运行?【英文标题】:HowtocheckthecodeisrunninginAOTinC#?如何在C#中检查代码是否在AOT中运行?【发布时间】:2021-03-1509:52:07【问题描述】:我正在使用编译表达式来创建实例。由于回退过程,它在JI... 查看详情

检查代码是不是在 Interface Builder 中运行

】检查代码是不是在InterfaceBuilder中运行【英文标题】:CheckingifcodeisrunninginInterfaceBuilder检查代码是否在InterfaceBuilder中运行【发布时间】:2015-06-1000:15:45【问题描述】:我在swift中有自定义的IBDesignable类,它们会做一些导致Interface... 查看详情

如何检查 JobService 是不是在 android 中运行?

】如何检查JobService是不是在android中运行?【英文标题】:HowtocheckJobServiceisrunningornotinandroid?如何检查JobService是否在android中运行?【发布时间】:2018-03-1414:17:44【问题描述】:我在我的项目中使用JobService。它运作良好。但有时... 查看详情

检查延迟的作业是不是在rails中运行

】检查延迟的作业是不是在rails中运行【英文标题】:Checkwhetherthedelayedjobisrunninginrails检查延迟的作业是否在rails中运行【发布时间】:2013-01-3000:16:18【问题描述】:我正在设计一个状态页面,我需要在其中显示延迟的作业是否正... 查看详情

如何检查 Tor 是不是在 PHP 中运行?

】如何检查Tor是不是在PHP中运行?【英文标题】:HowtocheckifTorisrunningwithinPHP?如何检查Tor是否在PHP中运行?【发布时间】:2013-04-1417:28:12【问题描述】:我正在将Tor与PHP一起使用,目前一切正常。但是,当我尝试从php启动Tor时,... 查看详情

OpenSSL 命令检查服务器是不是提供证书

】OpenSSL命令检查服务器是不是提供证书【英文标题】:OpenSSLCommandtocheckifaserverispresentingacertificateOpenSSL命令检查服务器是否提供证书【发布时间】:2014-08-1821:26:29【问题描述】:我正在尝试运行openssl命令以缩小在尝试从我们的系... 查看详情

检查 React 应用程序是不是在 Docker 容器中运行

】检查React应用程序是不是在Docker容器中运行【英文标题】:CheckwhetherReactapplicationisrunninginaDockercontainer检查React应用程序是否在Docker容器中运行【发布时间】:2019-05-3113:56:28【问题描述】:对于节点服务器,我能够使用is-docker包... 查看详情

PHP / Javascript检查是不是在特定的iframe中运行[重复]

】PHP/Javascript检查是不是在特定的iframe中运行[重复]【英文标题】:PHP/Javascriptcheckifrunninginspecificiframe[duplicate]PHP/Javascript检查是否在特定的iframe中运行[重复]【发布时间】:2013-05-0123:05:49【问题描述】:如果当前页面在特定页面的... 查看详情

在 C 中读取命令行参数并检查它是不是为数字

】在C中读取命令行参数并检查它是不是为数字【英文标题】:Readingcommand-lineargumentinCandcheckingisitadigit在C中读取命令行参数并检查它是否为数字【发布时间】:2021-02-2810:37:40【问题描述】:关于我的目标的详细信息在C语言中,我... 查看详情

如何检查线程代码是不是在 try-catch 块中运行

】如何检查线程代码是不是在try-catch块中运行【英文标题】:HowtocheckifThreadcoderunsintry-catchblock如何检查线程代码是否在try-catch块中运行【发布时间】:2010-09-1411:42:21【问题描述】:我想验证我们的代码并检查我们执行的每个线程... 查看详情

检查是不是在 bash 脚本中保留了 shift

】检查是不是在bash脚本中保留了shift【英文标题】:Checkifshiftisheldinabashscript检查是否在bash脚本中保留了shift【发布时间】:2015-07-2720:04:26【问题描述】:在大多数*nix环境的引导过程中,许多命令会检查是否按住shift并更改其行... 查看详情

cmd中输入adb相关命令提示“不是内部或外部命令,也不是可运行的程序”

...制到同目录tools文件夹下面(若存在,则不用操作)。2.检查环境变量设置问题。“我的电脑”-“属性”-“高级属性设置”,在高级选项里点击“环境变量”,查看是否设置了adb.exe路径。如果没有就必须添加环境变量操作。3.添... 查看详情

如何检查是不是在 bash 脚本中以 root 身份运行

】如何检查是不是在bash脚本中以root身份运行【英文标题】:Howtocheckifrunningasrootinabashscript如何检查是否在bash脚本中以root身份运行【发布时间】:2013-08-1511:24:30【问题描述】:我正在编写一个需要root级别权限的脚本,我想让它... 查看详情

如何在 OLDEB sql 选择命令中检查字段值是不是为特定字符长度?

】如何在OLDEBsql选择命令中检查字段值是不是为特定字符长度?【英文标题】:HowtocheckifafieldvalueisacertaincharacterlengthinaOLDEBsqlselectcommand?如何在OLDEBsql选择命令中检查字段值是否为特定字符长度?【发布时间】:2011-05-0515:35:38【问... 查看详情