我正在为房子建造一个 Ubuntu 服务器。我想集中种子。我正在寻找的是作为服务(守护进程)运行的东西,它有 3 个要配置的文件夹。
附加功能会很好,比如基于 Web 或控制台的屏幕,我可以在其中查看下载状态等,但它可以在没有人登录的情况下作为守护程序运行的事实是一个交易破坏者。
如果你知道任何事情,请告诉我。
我知道有一个名为 upstart 的程序可以轻松制作小型守护程序。我无法在 CentOS 上配置此程序。我收到各种有关 pkg-congfig、libnih 和 dbus 的错误。
我正在开发一个 node.ja 应用程序,启动和停止一直很痛苦,所以我想为此创建一个守护进程,它可以轻松启动和停止。
更新 1
我将举一个我需要这个项目的小例子,我希望有人可以帮助解决这个问题。
要启动 node.js 应用程序,我必须输入 SSH:
# node /path-to-file/filename.js
Run Code Online (Sandbox Code Playgroud)
现在,当我执行此终端冻结时,我必须按 CTRL + Z (pc) 才能返回输入。
现在,当我更改文件中的某些内容时,我必须再次重新加载它
我需要:
# killall -9 node
Run Code Online (Sandbox Code Playgroud)
这会杀死所有正在运行的节点应用程序
接下来我必须再次启动脚本
# node /path-to-file/filename.js
Run Code Online (Sandbox Code Playgroud)
我只想打字
# myapp restart
Run Code Online (Sandbox Code Playgroud)
一切都完成了。这种类型的设置会为我节省很多时间
更新 2
我找到了一个名为 monit 的程序。这很好用,并且在崩溃时自动启动应用程序,这很好。它还有一个很好的网络界面,也很方便。
我可以打字
# monit myapp start(start/stop/restart)
Run Code Online (Sandbox Code Playgroud)
这工作正常。只有一个缺点,这是一个主要的缺点。当我启动 myapp 应用程序时,它不显示 node.js 引发的编译错误。所以当它无法启动时,我不知道是什么原因。我必须再次键入整个 '# node /path-to-file/filename.js' 以检查错误。
我正在尝试在 OS X Lion Server 上设置YouTrack并使用launchd
. 我已经下载了 YouTrack jar 文件,我可以使用java -Xmx512m -jar youtrack.jar 8080
. 我还将上述运行命令包装在一个类似于此的 shell 脚本中,这基本上让我可以使用youtrack start
和与活动实例进行交互youtrack stop
。它将进程的进程 id 存储java
在一个文件中并退出,以便能够停止正在运行的实例,只允许一个实例等。
为了在启动时运行这个命令,我创建了一个简单的 launchd plist 并将它放在 /Library/LaunchDaemons 中,按照man launchd.plist
. 使用的主要键是ProgramArguments
( youtrack start
) 和RunAtLoad
(true)。问题是,当运行表单时,命令行将youtrack start
创建一个包含java
进程pid 的文件,我可以在top
或 中看到这个进程ps ax
。但是当命令由 lanuchd ( sudo launchctl load /Library/LaunchDaemons/org.example.youtrack.plist
)运行时,生成的 pid 将与任何正在运行的进程的 pid 不匹配,并且 YouTrack Web …
我正在尝试制作一个简单的守护进程,用于从紫色/图标( pidgin dir )中连续删除文件。但是, remove() 和 unlink() 不会删除文件。这是我的代码,请告诉我我的错误在哪里。
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>
#include <syslog.h>
#include <string.h>
#include <dirent.h>
#include <time.h>
int remove_files(const char* directory);
int remove_files(const char* directory) {
DIR *dp;
struct dirent *dirp;
int files_deleted = 0;
int count=0;
dp = opendir(directory);
while ( (dirp = readdir(dp)) != 0x00 ) {
files_deleted++;
remove(dirp->d_name);
}
closedir(dp);
return files_deleted;
}
int main(int argc, char *argv[]) {
time_t sec;
time(&sec);
//dir handlers …
Run Code Online (Sandbox Code Playgroud) 我已经安装mysql-server
在 Linux 机器上,但忘记了(哎呀)root 密码。上网查了一下,一般的方法是这样的:
sudo service mysql stop
)sudo mysqld_safe --skip-grant-tables
)mysql -u root
)我的问题在 2 号。当我运行命令时,它说一些关于日志记录和启动守护程序的内容,然后以行结束
mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
Run Code Online (Sandbox Code Playgroud)
并使用sudo service mysql status
确认 MySQL 确实停止了。
为什么会突然停止?而且(更重要的是)我怎样才能让它继续运行以便我可以重置我的密码?
提前致谢
编辑这里是“关于登录和启动守护进程的东西”的完整日志:
$ mysqld_safe --skip-grant-tables
141219 16:55:20 mysqld_safe Logging to syslog.
141219 16:55:20 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
141219 16:55:20 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
$
Run Code Online (Sandbox Code Playgroud)
编辑 2 …
我正在使用定制的 OpenWRT,其中ps
除了 之外,没有任何选项适用于该命令w
。
当我输入 时ps w
, it\xe2\x80\x99s 显示所有正在运行的进程,但如果我输入,例如,ps w | grep kkkk
it\xe2\x80\x99s 显示输出4414 (username) 1032 R grep kkkk
。
显然这个过程是不存在的。
\n\n有人可以解释一下吗?
\n\n实际上,我想获取 OpenWRT 中运行的守护进程列表。
\n