标签: path

启动时 init.d 脚本的 PATH 问题

我有一个简单的脚本来启动一个独角兽实例(在 Ubuntu 12.04LTS 上)。

#!/bin/sh

case "$1" in
    start)
       echo "starting"
       cd /path && bundle exec unicorn -c /path/config/unicorn.rb -D -E production
      ;;
     stop)
      echo "Stopping Unicorn Instances"
      kill `cat /tmp/unicorn.pid`
    ;;
    restart)
    echo "sending USR2 to all unicorns"
    kill -s USR2 `cat /tmp/unicorn.pid`
    ;;
esac
exit 0
Run Code Online (Sandbox Code Playgroud)

调用时它的行为正确: /etc/init.d/unicorn_boot.sh start

我希望它在启动时启动,所以我跑了: update-rc.d -f unicorn_boot.sh defaults

当我现在重新启动时,出现以下错误:

/etc/rc2.d/S20unicorn_boot.sh: 10: /etc/rc2.d/S20unicorn_boot.sh: bundle: not found

我检查了bundle命令,它安装在 中/usr/local/bin,与ruby命令相同。

似乎在启动PATH时还没有包含/usr/local/bin. 我怎样才能解决这个问题?

ubuntu path init.d

8
推荐指数
1
解决办法
1万
查看次数

Mac 上的 pkg-config 找不到库

我最近在 Mac 上从 GNOME 源安装了一堆库。他们使用 pkg-config。

每次我运行配置时,它都会抱怨找不到库 XYZ,我将其安装到 /usr/local/lib。我可以完成配置过程的唯一方法是使用 MacPorts 重新安装软件包。

如何让 pkg-config 查看默认的 /usr/local/lib?设置 PKG_CONFIG_PATH 似乎不起作用。

mac-osx path

7
推荐指数
1
解决办法
8444
查看次数

如何快速变回之前的路径?

这是我认为的基本 linux 问题,但我真的很想知道。

例如,目前我在/usr/bin

[x@localhost bin]$ pwd
/usr/bin
[x@localhost bin]$ cd /
[x@localhost /]$
Run Code Online (Sandbox Code Playgroud)

现在我想回到以前的路径/usr/bin,如何快速做到这一点?我不想再打字cd /usr/bin了。

linux path

7
推荐指数
1
解决办法
1580
查看次数

Windows:如何从命令行将程序添加到系统的路径环境变量中?

我希望将目录永久添加到%PATH%大量 Windows 机器上可用的环境中。有什么方法可以从命令行 ( cmd)执行此操作,以便我可以编写解决方案的脚本,而不必在数十台服务器上使用 GUI。

我怎样才能做到这一点?

windows command-line-interface environment-variables windows-command-prompt path

6
推荐指数
2
解决办法
1万
查看次数

为当前 shell 重新挂载 /tmp

我有一个硬编码的命令/tmp用作其工作目录。

/tmp 比较小,命令肯定会把它填满,这会给其他系统进程带来问题。

我无法修改命令,所以我想重新挂载/tmp到其他地方,只对当前用户/shell 可见,而不影响其他用户/进程。

这可能吗?

更新:发现该命令使用了TMPDIR我可以覆盖的变量,但仍然想知道是否有我可以使用的 Linux 用户空间命令。

linux mount path

6
推荐指数
1
解决办法
1952
查看次数

.htaccess 中的 ErrorDocument,是否可以使用相对路径?

这不起作用:

ErrorDocument 401 ../../src/wrong_pwd.php
Run Code Online (Sandbox Code Playgroud)

它将路径呈现为文本,它确实打印

../../src/wrong_pwd.php
Run Code Online (Sandbox Code Playgroud)

并且不输出真实文件。

如果我放置绝对路径,它将呈现/var/www/home (我真的不知道为什么,也许是 httpd.conf 中的内容?)

我怎样才能做到这一点?

.htaccess path errordocument apache-2.2

5
推荐指数
1
解决办法
7670
查看次数

Robocopy 使用相对路径作为源路径和目标路径

我正在尝试在 TFS 构建模板中使用 RoboCopy 来复制一些文件,但由于某种原因,它会在我的源路径和目标路径前面插入“C:\\Windows\\system32”,即使我传递的是绝对路径路径。我知道 robocopy.exe 存储在“C:\\Windows\\system32”中,但是如何让它使用我的绝对文件路径?

\n\n

这是我的 TFS 构建日志的输出。这是执行的命令:

\n\n
RoboCopy \'C:\\Builds\\27\\RQ4TeamProject\\BuildProcessTests\\Binaries\' \'\\\\iq-tfsbuild1\\buildDrops\\BuildProcessTests\\0.99.6.32749\' /E /XD \'RQ4\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是 robocopy 报告的错误:

\n\n
-------------------------------------------------------------------------------\nROBOCOPY :: Robust File Copy for Windows\n-------------------------------------------------------------------------------\nStarted : Thu Jan 24 17:08:47 2013\nSource : C:\\Windows\\system32\\\'C:\\Builds\\27\\RQ4TeamProject\\BuildProcessTests\\Binaries\'\\\nDest : C:\\Windows\\system32\\\'\\iq-tfsbuild1\\buildDrops\\BuildProcessTests\\0.99.6.32749\'\\\nFiles : *.*\n\xe2\x97\x8b\nExc Dirs : \'RQ4\'\n\xe2\x97\x8b\nOptions : *.* /S /E /COPY:DAT /R:1000000 /W:30\n------------------------------------------------------------------------------\n2013/01/24 17:08:47 ERROR 123 (0x0000007B) Accessing Source Directory C:\\Windows\\system32\\\'C:\\Builds\\27\\RQ4TeamProject\\BuildProcessTests\\Binaries\'\\\nThe filename, directory name, or volume label syntax is incorrect.\n
Run Code Online (Sandbox Code Playgroud)\n\n

任何想法出了什么问题以及如何让它仅使用我提供的绝对路径?任何建议表示赞赏。谢谢

\n

directory copy robocopy team-foundation-server path

5
推荐指数
1
解决办法
1万
查看次数

在 CentOS 中刷新二进制路径的命令?

这可能真的很容易,但我似乎找不到它。

我正在 /usr/bin 和 /usr/sbin 之间移动二进制文件,即使两个文件夹都在我的 $PATH 中,将一个二进制文件移动到另一个会导致系统在其原始位置不断寻找它。

任何人都知道这是为什么,如果有一个命令来刷新它?

centos path binary

5
推荐指数
1
解决办法
2832
查看次数

Ansible become_user 没有正确选择路径

这是显示我认为有问题的代码:

# Debugging path problems with sudo
---
- hosts: webservers
  remote_user: root
  tasks:
  - name: echo path
    command: echo $PATH
    register: output
    changed_when: False

  - name: display root path output
    debug: "msg={{ output.stdout }}"

  # Now try as apache
  - name: echo path
    command: echo $PATH
    become: true
    become_user: apache
    become_method: sudo
    register: output
    changed_when: False

  - name: display wrong output
    debug: "msg={{ output.stdout }}"

  # This is the fix
  - name: echo path
    command: echo $PATH
    environment:
      PATH: …
Run Code Online (Sandbox Code Playgroud)

sudo path ansible

5
推荐指数
1
解决办法
5340
查看次数

为什么“ansible -a“env””返回的环境路径与我的用户不同?

当我通过 ssh 进入远程服务器并运行时,env我返回以下路径:

PATH=/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/myusername/bin
Run Code Online (Sandbox Code Playgroud)

相反,当我执行 ansible 命令时ansible -a "env",我得到以下路径:

PATH=/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin
Run Code Online (Sandbox Code Playgroud)

可以想象,试图运行时,这会导致问题 sbin类似的命令servicentpdate等等,因为它需要打字的完整路径sbin目录命令。(是的,我知道有 ansible 模块可以做到这一点,但我正在尝试解决 PATH 被缩短/截断的原因。)

有谁知道为什么会这样?

编辑:我问这个的原因是我正在按照书中的例子进行操作,Ansible for DevOps并且由于这个原因,一些例子不起作用。

我试图开始工作的例子来自本书的第 28 页:

$ ansible multi -s -a "service ntpd stop"
$ ansible multi -s -a "ntpdate -q 0.rhel.pool.ntp.org"
$ ansible multi -s -a "service ntpd start"
Run Code Online (Sandbox Code Playgroud)

这些命令总是会引发错误。但是如果我将它们更改为包含完整路径,它们就可以工作。

$ ansible multi -s -a "/sbin/service ntpd stop"
$ ansible multi -s -a "/usr/sbin/ntpdate -q 0.rhel.pool.ntp.org"
$ ansible multi -s -a …
Run Code Online (Sandbox Code Playgroud)

environment-variables path ansible

5
推荐指数
2
解决办法
4841
查看次数