해결책

해결책

sslocal컴퓨터가 시작될 때 자동으로 시작되도록 하고 싶습니다 . 그런 다음 /etc/profile아래와 같이 명령줄을 추가합니다 /usr/local/bin/sslocal -c /etc/config.json -d start. 하지만 재부팅하면 다음 오류가 발생합니다 Permission denied:/var/run/shadowsocks.pid.

제가 첨부한 스크립트에는 루트 액세스가 필요하다는 것을 알고 있습니다. sslocal라는 새 파일이 디렉토리에 작성되므로 루트 사용자로 터미널에서 직접 스크립트를 실행하면 모든 것이 원활하게 진행됩니다. 연결한 후에 권한이 충분하지 않은 것 같습니다.shadowsocks.pid/var/run//etc/profile

그렇다면 부팅 시 스크립트가 자동으로 실행되도록 하려면 어떻게 해야 할까요? 누군가 나에게 편집을 제안했지만 /etc/rc.local작동하지 않습니다. 내 시스템은 Ubuntu 16.04이고 다음은 /etc/rc.local(파일 권한은) 입니다 755.

#!/bin/dash -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sudo /usr/local/bin/sslocal -c /etc/shadowsocks.json -d start

exit 0

답변1

내 컴퓨터에 섀도우 소켓을 설치하려고 합니다. 내가 가진 문제는 컴퓨터가 시작될 때 섀도우 소켓 서비스가 자동으로 실행되도록 하는 방법입니다. 서비스 시작 명령은 다음과 같습니다 sudo /usr/local/bin/sslocal -c /etc/shadowsocks.json -d start(이 명령은 디렉터리에 새 파일을 작성하여 권한을 /var/run/부여하기 때문입니다 sudo).

해결책

PC가 부팅될 때 스크립트를 자동으로 실행하는 가장 쉬운 방법은 스크립트를 작성하는 것입니다 /etc/profile. 따라서 질문에서 설명하는 것처럼 sudo위에 전체 명령줄을 추가했습니다 .exit 0철사.

유효한지 확인하세요.

컴퓨터를 다시 시작한 후 터미널에 다음 명령을 입력합니다 sudo systemctl status rc-local.service. sslocal 명령이 유효하면 다음과 같은 출력이 표시됩니다.

>rc-local.service - /etc/rc.local 호환성
로드됨: 로드됨(/etc/systemd/system/rc-local.service; 활성화됨, 공급업체 기본값: 활성화됨)
활성: 2015년 11월 27일 금요일 03:19:25 CST 2분 39초 전부터 활성(실행 중);
프로세스: 881 ExecStart=/etc/rc.local 시작됨(코드=종료, 상태=0/SUCCESS)
C그룹:/system.slice/rc-local.service
─ 887 시계 -n 60 su 매트릭스 -c ibam
└─1112 /usr/bin/python /usr/local/bin/sslocal -c /etc/shadowsocks....

마지막 줄에서 볼 수 있듯이 sslocal 명령은 내 컴퓨터에 pid가 1112인 프로세스를 생성했습니다. 이는 Shadow-Socks 클라이언트가 원활하게 실행된다는 것을 의미합니다.

관련 정보