首页 » 互联网资讯 » 正文

Linux怎么设置系统服务

Linux设置进程为系统服务,我都是通过systemctl设置的,以前是这样的
ExeStart=程序目录+参数

但是最近遇到的情况是这样的,要进去指定的目录,然后执行npm start
所以我就这样写:
ExeStart=cd /root/xxx &&  npm start
或者这样写:
ExeStart=/root/xxx &&  npm start

都不成功,有知道的大佬怎么设置这种进入目录,再执行命令的过程设置为系统服务的吗?



陕西网友 生活23 评论:
ExecStart
你少写一个字母

我都老实照抄别人的,放在$PATH下面,稳稳当当的


安徽网友 乌龙雪碧 评论:

“For each of the specified commands, the first argument must be either an absolute path to an executable or a simple file name without any slashes.”

要求命令的绝对路径或者单纯文件名  + 参数,你这种当然不行。

没有相关经验,个人猜测:

– 用脚本封装
– 使用WorkingDirectory选项

“`
WorkingDirectory=/root/xxx
ExecStart=npm start
“`


海南网友 就是叼 评论:
服务类型oneshot, 然后把你执行的命令放到脚本文件去


河南网友 lcwsdhz007 评论:

“For each of the specified commands, the first argument must be either an absolute path to an execut …

你这种我试过了,WorkingDirectory提示只能是文件,不能是目录,这就尴尬了


江西网友 朱美秋prpk 评论:

服务类型oneshot, 然后把你执行的命令放到脚本文件去

很粗暴的使用了node /root/xxx/xxx.js,这样的方法,不知道有什么后遗症


江西网友 杨晨旭 评论:
systemctl启动一个脚本,脚本执行cd再运行可不可以?


浙江网友 a6643473 评论:
放脚本里,执行脚本


河北网友 722派喜 评论:

很粗暴的使用了node /root/xxx/xxx.js,这样的方法,不知道有什么后遗症

这种都是看node.js脚本的,如果它需要工作目录那就会失败,不用就无所谓了。


湖南网友 喻品源_Marc 评论:

你这种我试过了,WorkingDirectory提示只能是文件,不能是目录,这就尴尬了

不可能,你应该弄错了什么地方。

发表评论