执行程序时出现问题

执行程序时出现问题

最终我试图让一个程序在启动时运行并正常工作。

我已经成功地让它在重新启动后显示在正在运行的进程中,但它似乎工作不正常。

我开始解决这个问题,并发现了一些有趣的发现。

我正在运行 openmediavault 1.0.20,它基于 Debian Wheezy 并使用 ssh 以 root 身份登录。

uTorrent 安装路径:/opt/utorrent

如果我输入

cd /opt/utorrent          
./utserver

utserver 运行,我可以通过服务器的 sip:8080/gui 访问 webui

然而当我跑步时

cd /
/opt/utorrent/utserver

utserver 运行,但无法访问 Web UI。我不明白为什么一种方法有效,而另一种方法却无效。

/opt/utorrent/utserver一旦我可以在运行我所做的修改后让 webui 工作,rc.local应该可以正确工作

rc.local 的当前内容

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

#Auto run uTorrent at start up
#su ut -c '/opt/utorrent/utserver &'
sudo /opt/utorrent/utserver &


exit 0

答案1

  1. 不要sudo在初始化脚本中使用。它们一开始就以 root 身份运行。

  2. 如果您要使用sudoin /etc/rc.local(根据#1,这样做是没有意义的),您需要提供或 可执行文件的路径,因为在引导时运行它时$PATH没有设置。因此,例如,如果您想运行,请首先找出它在哪里:$PATHinitls

    其中 ls ls: /usr/bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz

    所以,你要么需要:

    export PATH=/usr/bin/  # At the top
    - OR -
    /usr/bin/ls   # Where you want to run it.
    

请注意,进程是从 init 脚本启动的必须自己背景, 你的

/opt/utorrent/utserver &

应该没事。

相关内容