我创建了一个 launchd .plist 文件,以便每小时运行一个 python 脚本。我最终编辑并随后删除了 .plist 文件(在 /Library/LaunchDaemons 中)......但不知何故,launchd 仍在尝试运行脚本......原始 .plist 正在调用的文件也不再存在(它是在 /usr/bin 中)。现在每 10 秒,launchd 仍在尝试运行脚本,失败并重新生成...
我尝试用 Lingon 解决这个问题......无济于事......有没有办法彻底终止这个过程?我也尝试注销并重新启动...
机器正在运行 10.5.8
Linux 中的服务如何使用权限?我已经知道我可以设置read,write以及execute对文件和目录的权限chmod分别用于owner,group以及other users但是如何权限运行的服务工作?如何查看服务对特定文件/目录的权限?
我有自定义脚本来挂载谷歌驱动器。
此脚本的一部分是以下代码:
if [ ! "$(which google-drive-ocamlfuse)" ]
then
echo "Install google-drive-ocamlfuse first!"
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
从终端执行,就像魅力一样。
因此,我将其配置为服务:
[Unit]
Description=Mount and umount google drives
[Service]
User=<usernamehere>
Type=oneshot
RemainAfterExit=true
ExecStart=/home/<usernamehere>/mybscripts/gdrivemounter.sh -m
ExecStop=/home/<usernamehere>/mybscripts/gdrivemounter.sh -u
Environment="DISPLAY=:0"
Environment="XAUTHORITY=/home/<usernamehere>/.Xauthority"
[Install]
WantedBy=graphical.target
Run Code Online (Sandbox Code Playgroud)
不幸的是,我看到退出代码:“首先安装 google-drive-ocamlfuse!” 当我检查服务状态时。
命令which google-drive-ocamlfuse在用户和 root 下为我提供了有效路径:
$ which google-drive-ocamlfuse
/home/<usernamehere>/.opam/default/bin/google-drive-ocamlfuse
Run Code Online (Sandbox Code Playgroud)
问题出在哪儿?
我正在尝试按照本指南在无头服务器上运行洪水守护程序。客户端部分似乎在工作,但服务器部分似乎根本不起作用。
Deluge-console 应该允许您在纯文本环境中向守护程序发送命令。但是我无法让它连接到自己。每当我启动它时,它都会说Failed to connect to 127.0.0.1:58846 with reason: Password does not match。如果我尝试像这样的命令deluge-console "config -s allow_remote True",我会收到这样的错误转储:
[ERROR ] 03:21:31 client:391 RPCError Message Received!
--------------------------------------------------------------------------------
RPCRequest: daemon.login(localclient, <a long string>)
--------------------------------------------------------------------------------
File "/usr/lib/python2.7/dist-packages/deluge/core/rpcserver.py", line 259, in dispatch
ret = component.get("AuthManager").authorize(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/deluge/core/authmanager.py", line 93, in authorize
raise BadLoginError("Password does not match")
BadLoginError: Password does not match
--------------------------------------------------------------------------------
Failed to connect to 127.0.0.1:58846 with reason: Password does not match
Run Code Online (Sandbox Code Playgroud)
~/.config/deluge/auth 看起来像这样:
localclient:<a long string>:10 …Run Code Online (Sandbox Code Playgroud) 标题就是问题。
最初这台 Ubuntu 机器是无头的,但我安装了 LXDE。通常传输由默认的 GTK+ GUI 运行。与其确保守护进程运行而不是 GUI 运行,我更希望拥有 GUI 和守护进程,但我不知道如果可能的话,如何同时运行它们并且它们当然是同步的。
我们jaervinen在使用计算机时登录,一次登录 1 次,但我知道传输守护进程有自己的用户debian-transmission.
我家里有一台安装了 SSH 的计算机,我希望能够远程控制它。但是,我无法通过我的路由器允许 SSH 端口转发,因此进入的唯一方法是让我的计算机上的安装侦听服务器上的端口以进行连接。是否有用于此目的的现有软件?
我一直在尝试提高优胜美地的 maxfile 限制和 maxfileperproc 限制,但没有运气。我在 etc 文件夹中创建了一个 sysctl.conf 文件,它在通过 grep 显示时成功增加了值。
但是,如果我查看launchctl limit maxfiles,该值仍然不正确。
一些解决方案似乎使用 ulimit -n 来设置限制,但是在终端中时,我实际上无法使用它。它给了我“无效参数”或“未经授权的操作”的错误。我已经通过 bash_profile 脚本成功增加了 ulimit,但是由于应用程序是从应用程序运行的,而不是从 shell 运行的,所以它无关紧要。我还通过 root 用户成功地增加了 ulimit,但是当它被注销时,它不会保存更改。
理想情况下,我正在寻找像 launchd.conf 文件那样工作的东西,并且只是在重新启动时自动增加 launchctl limit maxfiles {#}。
有没有办法成功地做到这一点?也许使用像 Lingon 这样的 3rd 方,或者使用启动守护程序?
谢谢!
我正在尝试在我的 Ubuntu 15.04 中启动 ddclient 作为守护程序,它现在使用systemd,但甚至无法在https://help.ubuntu.com/community/DynamicDNS上关注 Ubuntu wiki 。
我弄完了,
update-rc.d ddclient defaults
Run Code Online (Sandbox Code Playgroud)
然后尝试,
invoke-rc.d ddclient start
Run Code Online (Sandbox Code Playgroud)
进而,
service ddclient start
Run Code Online (Sandbox Code Playgroud)
但ps上市仍ddclient遥遥无期。
只有在我做了之后,
/etc/init.d/ddclient restart
Run Code Online (Sandbox Code Playgroud)
我开始看到ddclient出现在ps列表中。
不/etc/init.d/ddclient restart应该被弃用吗?我们不应该使用invoke-rc.d ... start或service ... start代替吗?
在 Ubuntu 15.04 systemd 下启动 ddclient 作为守护进程的正确方法是什么?
使它始终在机器启动时启动的正确方法是什么?我想update-rc.d它将不再工作,因为invoke-rc.d,对吧?
谢谢
我正在运行几个 PHP CLI 脚本并通过 Supervisor 监控它们。
当我supervisorctl用来监视它们时,脚本显示如下:
cleanup RUNNING pid 1805, uptime 0:00:41
postsales RUNNING pid 1825, uptime 0:00:10
rebills RUNNING pid 1823, uptime 0:00:19
subscribers RUNNING pid 1827, uptime 0:00:10
Run Code Online (Sandbox Code Playgroud)
但是,当我发出 a 时stop all, supervisorctl 冻结,我需要按 CTRL+C 退出。
当我下次运行时supervisorctl,状态如下所示:
cleanup RUNNING pid 1935, uptime 0:00:44
postsales RUNNING pid 1953, uptime 0:00:05
rebills STOPPED Jul 19 12:23 PM
subscribers RUNNING pid 1951, uptime 0:00:05
Run Code Online (Sandbox Code Playgroud)
即只有一个进程已停止,其他进程继续运行。
如果我发出更多stop all命令,同样的事情会发生 - 一个脚本尝试退出,其余的挂起。
我已经尝试修改 supervisord.conf 文件以 …
我已经atrun使用以下命令启动了守护进程。
$ sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
Run Code Online (Sandbox Code Playgroud)
将我的用户名添加到/var/at/at.allow文件中。
$ cat /var/at/at.allow
myusername
Run Code Online (Sandbox Code Playgroud)
并使用at命令创建了一个作业。
$ at now + 1 minute
touch /tmp/x.log
^D
job 1 at Fri Jan 1 09:56:00 2021
Run Code Online (Sandbox Code Playgroud)
我可以看到使用atq命令安排的作业。
但是我看不到/tmp/x.log在预定时间之后创建的文件。有什么我在这里遗漏的,或者有没有办法调试这个问题?
daemon ×10
linux ×3
bash ×2
launchd ×2
macos ×2
process ×2
services ×2
at ×1
autostart ×1
boot ×1
command-line ×1
deluge ×1
gui ×1
launchctl ×1
mac ×1
osx-yosemite ×1
permissions ×1
php-cli ×1
remote ×1
ssh ×1
systemd ×1
transmission ×1
ubuntu ×1
ubuntu-13.04 ×1
ulimit ×1