我正在使用伪终端/ bin / sh -i,通过调用posix_openpty()的正常命令然后用语言C调用fork()。
当我从这样的命令行GUI终端运行时
$ ./MyTerminal
或
$ sudo ./MyTerminal
或像这样的根
# ./MyTerminal
一切都很好,正如预期的那样,没问题。
但是,当我制作这样的systemd服务文件时,它可以正常工作
[Service]
User=root
但是当我尝试让systemd像普通用户一样运行它时
[Service]
User=debian
/ bin / sh -i的第一个输出是
/bin/sh: 0: can't access tty; job control turned off $
终端并没有真正起作用。
当我运行/ bin / bash时,fork()w / posix_openpty()将返回给我,但终端通常可以正常工作
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell
这是一个奇怪的问题,因为当在systemd之外运行时,一切都很完美。我在另外一个问题中看到了这个问题但没有明确的解决方案那么我需要改变什么才能让systemd完美地运行我的文件?谢谢你的帮助。