最终我试图让一个程序在启动时运行并正常工作。
我已经成功地让它在重新启动后显示在正在运行的进程中,但它似乎工作不正常。
我开始解决这个问题,并发现了一些有趣的发现。
我正在运行 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
不要
sudo
在初始化脚本中使用。它们一开始就以 root 身份运行。如果您要使用
sudo
in/etc/rc.local
(根据#1,这样做是没有意义的),您需要提供或 可执行文件的路径,因为在引导时运行它时$PATH
没有设置。因此,例如,如果您想运行,请首先找出它在哪里:$PATH
init
ls
其中 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 &
应该没事。