我正试图使用process(((来自Symfony\Component\process\process(在ubuntu服务器上运行一些服务
$process = new Process(['systemctl', '--user', 'start', $serviceName]);
try {
$process->mustRun();
}
catch (ProcessFailedException $ex) {
Log::alert($ex->getMessage());
}
但我得到了以下错误:
The command "'systemctl' '--user' 'start' 'some_service_name.service'" failed.
Exit Code: 1(General error)
Working directory: /
Output:
Error Output:
Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not defined (consider using --machine=<user>@.host --user to connect to bus of other user)
任何帮助都将不胜感激!
我想明白了,对于任何面临同样问题的人来说--机器=username@.host"不见了。
所以最终结果应该是这样的:
$process = new Process(['systemctl', '--machine=USER_HERE@.host', '--user', 'start', $serviceName]);
try {
$process->mustRun();
}
catch (ProcessFailedException $ex) {
Log::alert($ex->getMessage());
}
(用您的用户替换USER_HERE(